Merge pull request 'Fixed up debouncer and added some assertions' (#1) from debouncer_fixup into master
All checks were successful
ci/woodpecker/push/test-workflow Pipeline was successful
All checks were successful
ci/woodpecker/push/test-workflow Pipeline was successful
Reviewed-on: #1
This commit is contained in:
commit
aa8ffb8213
160
SDVD.xpr
160
SDVD.xpr
@ -44,7 +44,7 @@
|
||||
<Option Name="SimulatorGccVersionRiviera" Val="9.3.0"/>
|
||||
<Option Name="SimulatorGccVersionActiveHdl" Val="9.3.0"/>
|
||||
<Option Name="BoardPart" Val=""/>
|
||||
<Option Name="ActiveSimSet" Val="audio_buffer_tb"/>
|
||||
<Option Name="ActiveSimSet" Val="sim_1"/>
|
||||
<Option Name="DefaultLib" Val="xil_defaultlib"/>
|
||||
<Option Name="ProjectType" Val="Default"/>
|
||||
<Option Name="IPRepoPath" Val="$PPRDIR/../../../fpga/vivado-library"/>
|
||||
@ -60,7 +60,7 @@
|
||||
<Option Name="IPStaticSourceDir" Val="$PIPUSERFILESDIR/ipstatic"/>
|
||||
<Option Name="EnableBDX" Val="FALSE"/>
|
||||
<Option Name="DSABoardId" Val="nexys-a7-100t"/>
|
||||
<Option Name="WTXSimLaunchSim" Val="54"/>
|
||||
<Option Name="WTXSimLaunchSim" Val="87"/>
|
||||
<Option Name="WTModelSimLaunchSim" Val="0"/>
|
||||
<Option Name="WTQuestaLaunchSim" Val="0"/>
|
||||
<Option Name="WTIesLaunchSim" Val="0"/>
|
||||
@ -91,20 +91,6 @@
|
||||
<FileSets Version="1" Minor="32">
|
||||
<FileSet Name="sources_1" Type="DesignSrcs" RelSrcDir="$PSRCDIR/sources_1" RelGenDir="$PGENDIR/sources_1">
|
||||
<Filter Type="Srcs"/>
|
||||
<File Path="$PPRDIR/design/sdvd_defs.sv">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
<Attr Name="UsedIn" Val="implementation"/>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PPRDIR/design/audio/audio_buffer.sv">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
<Attr Name="UsedIn" Val="implementation"/>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PPRDIR/design/debouncer.sv">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
@ -154,6 +140,22 @@
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PPRDIR/design/sdvd_defs.sv">
|
||||
<FileInfo>
|
||||
<Attr Name="AutoDisabled" Val="1"/>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
<Attr Name="UsedIn" Val="implementation"/>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PPRDIR/design/audio/audio_buffer.sv">
|
||||
<FileInfo>
|
||||
<Attr Name="AutoDisabled" Val="1"/>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
<Attr Name="UsedIn" Val="implementation"/>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PPRDIR/design/audio/pwm.sv">
|
||||
<FileInfo>
|
||||
<Attr Name="AutoDisabled" Val="1"/>
|
||||
@ -184,6 +186,13 @@
|
||||
</FileSet>
|
||||
<FileSet Name="sim_1" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/sim_1" RelGenDir="$PGENDIR/sim_1">
|
||||
<Filter Type="Srcs"/>
|
||||
<File Path="$PPRDIR/verification/debouncer_assertions.sv">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
<Attr Name="UsedIn" Val="implementation"/>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PPRDIR/verification/debouncer_tb.sv">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
@ -206,6 +215,7 @@
|
||||
<Option Name="CosimPdi" Val=""/>
|
||||
<Option Name="CosimPlatform" Val=""/>
|
||||
<Option Name="CosimElf" Val=""/>
|
||||
<Option Name="xsim.simulate.runtime" Val="1s"/>
|
||||
</Config>
|
||||
</FileSet>
|
||||
<FileSet Name="utils_1" Type="Utils" RelSrcDir="$PSRCDIR/utils_1" RelGenDir="$PGENDIR/utils_1">
|
||||
@ -250,15 +260,16 @@
|
||||
</FileSet>
|
||||
<FileSet Name="playback_controller_tb" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/playback_controller_tb" RelGenDir="$PGENDIR/playback_controller_tb">
|
||||
<Filter Type="Srcs"/>
|
||||
<File Path="$PPRDIR/design/sdvd_defs.sv">
|
||||
<File Path="$PPRDIR/verification/playback_controller_tb.sv">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
<Attr Name="UsedIn" Val="implementation"/>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
</FileInfo>
|
||||
</File>
|
||||
<File Path="$PPRDIR/verification/playback_controller_tb.sv">
|
||||
<File Path="$PPRDIR/design/sdvd_defs.sv">
|
||||
<FileInfo>
|
||||
<Attr Name="AutoDisabled" Val="1"/>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
<Attr Name="UsedIn" Val="implementation"/>
|
||||
<Attr Name="UsedIn" Val="simulation"/>
|
||||
@ -283,6 +294,7 @@
|
||||
</Config>
|
||||
</FileSet>
|
||||
<FileSet Name="audio_buffer_tb" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/audio_buffer_tb" RelGenDir="$PGENDIR/audio_buffer_tb">
|
||||
<Filter Type="Srcs"/>
|
||||
<File Path="$PPRDIR/verification/audio/audio_buffer_tb.sv">
|
||||
<FileInfo>
|
||||
<Attr Name="UsedIn" Val="synthesis"/>
|
||||
@ -365,9 +377,7 @@
|
||||
</Run>
|
||||
<Run Id="impl_1_copy_1" Type="Ft2:EntireDesign" Part="xc7a100tcsg324-1" ConstrsSet="constrs_1" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" SynthRun="synth_1" IncludeInArchive="true" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/impl_1/impl_1_copy_1" AutoRQSDir="$PSRCDIR/utils_1/imports/impl_1/impl_1_copy_1" ParallelReportGen="true">
|
||||
<Strategy Version="1" Minor="2">
|
||||
<StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2024">
|
||||
<Desc>Default settings for Implementation.</Desc>
|
||||
</StratHandle>
|
||||
<StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2024"/>
|
||||
<Step Id="init_design"/>
|
||||
<Step Id="opt_design"/>
|
||||
<Step Id="power_opt_design"/>
|
||||
@ -379,128 +389,124 @@
|
||||
<Step Id="write_bitstream"/>
|
||||
</Strategy>
|
||||
<ReportStrategy Name="Vivado Implementation Default Reports" Flow="Vivado Implementation 2024" CtrlBit="true">
|
||||
<ReportConfig DisplayName="Timing Summary - Design Initialization" Name="impl_1_copy_1_init_report_timing_summary_0" Spec="report_timing_summary" RunStep="init_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Timing Summary - Design Initialization" Name="impl_1_copy_1_init_report_timing_summary_0" Spec="report_timing_summary" RunStep="init_design" ReportFile="nexys_a7_top_timing_summary_init.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="DRC - Opt Design" Name="impl_1_copy_1_opt_report_drc_0" Spec="report_drc" RunStep="opt_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="DRC - Opt Design" Name="impl_1_copy_1_opt_report_drc_0" Spec="report_drc" RunStep="opt_design" ReportFile="nexys_a7_top_drc_opted.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Timing Summary - Opt Design" Name="impl_1_copy_1_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="opt_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Timing Summary - Opt Design" Name="impl_1_copy_1_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="opt_design" ReportFile="nexys_a7_top_timing_summary_opted.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Timing Summary - Power Opt Design" Name="impl_1_copy_1_power_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="power_opt_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Timing Summary - Power Opt Design" Name="impl_1_copy_1_power_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="power_opt_design" ReportFile="nexys_a7_top_timing_summary_pwropted.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="IO - Place Design" Name="impl_1_copy_1_place_report_io_0" Spec="report_io" RunStep="place_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="IO - Place Design" Name="impl_1_copy_1_place_report_io_0" Spec="report_io" RunStep="place_design" ReportFile="nexys_a7_top_io_placed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Utilization - Place Design" Name="impl_1_copy_1_place_report_utilization_0" Spec="report_utilization" RunStep="place_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Utilization - Place Design" Name="impl_1_copy_1_place_report_utilization_0" Spec="report_utilization" RunStep="place_design" ReportFile="nexys_a7_top_utilization_placed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Control Sets - Place Design" Name="impl_1_copy_1_place_report_control_sets_0" Spec="report_control_sets" RunStep="place_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Control Sets - Place Design" Name="impl_1_copy_1_place_report_control_sets_0" Spec="report_control_sets" RunStep="place_design" ReportFile="nexys_a7_top_control_sets_placed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="verbose" Type="" Value="true"/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Incremental Reuse - Place Design" Name="impl_1_copy_1_place_report_incremental_reuse_0" Spec="report_incremental_reuse" RunStep="place_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Incremental Reuse - Place Design" Name="impl_1_copy_1_place_report_incremental_reuse_0" Spec="report_incremental_reuse" RunStep="place_design" ReportFile="nexys_a7_top_incremental_reuse_pre_placed.rpt.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Incremental Reuse - Place Design" Name="impl_1_copy_1_place_report_incremental_reuse_1" Spec="report_incremental_reuse" RunStep="place_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Incremental Reuse - Place Design" Name="impl_1_copy_1_place_report_incremental_reuse_1" Spec="report_incremental_reuse" RunStep="place_design" ReportFile="nexys_a7_top_incremental_reuse_placed.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Timing Summary - Place Design" Name="impl_1_copy_1_place_report_timing_summary_0" Spec="report_timing_summary" RunStep="place_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Timing Summary - Place Design" Name="impl_1_copy_1_place_report_timing_summary_0" Spec="report_timing_summary" RunStep="place_design" ReportFile="nexys_a7_top_timing_summary_placed.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Timing Summary - Post-Place Power Opt Design" Name="impl_1_copy_1_post_place_power_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="post_place_power_opt_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Timing Summary - Post-Place Power Opt Design" Name="impl_1_copy_1_post_place_power_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="post_place_power_opt_design" ReportFile="nexys_a7_top_timing_summary_postplace_pwropted.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Timing Summary - Post-Place Phys Opt Design" Name="impl_1_copy_1_phys_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="phys_opt_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Timing Summary - Post-Place Phys Opt Design" Name="impl_1_copy_1_phys_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="phys_opt_design" ReportFile="nexys_a7_top_timing_summary_physopted.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="implementation_log" Name="impl_1_copy_1_route_implementation_log_0" Spec="" RunStep="route_design">
|
||||
<ReportConfig DisplayName="implementation_log" Name="impl_1_copy_1_route_implementation_log_0" Spec="" RunStep="route_design" ReportFile="nexys_a7_top.vdi">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="DRC - Route Design" Name="impl_1_copy_1_route_report_drc_0" Spec="report_drc" RunStep="route_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="DRC - Route Design" Name="impl_1_copy_1_route_report_drc_0" Spec="report_drc" RunStep="route_design" ReportFile="nexys_a7_top_drc_routed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Methodology - Route Design" Name="impl_1_copy_1_route_report_methodology_0" Spec="report_methodology" RunStep="route_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Methodology - Route Design" Name="impl_1_copy_1_route_report_methodology_0" Spec="report_methodology" RunStep="route_design" ReportFile="nexys_a7_top_methodology_drc_routed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Power - Route Design" Name="impl_1_copy_1_route_report_power_0" Spec="report_power" RunStep="route_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Power - Route Design" Name="impl_1_copy_1_route_report_power_0" Spec="report_power" RunStep="route_design" ReportFile="nexys_a7_top_power_routed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Route Status - Route Design" Name="impl_1_copy_1_route_report_route_status_0" Spec="report_route_status" RunStep="route_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Route Status - Route Design" Name="impl_1_copy_1_route_report_route_status_0" Spec="report_route_status" RunStep="route_design" ReportFile="nexys_a7_top_route_status.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Timing Summary - Route Design" Name="impl_1_copy_1_route_report_timing_summary_0" Spec="report_timing_summary" RunStep="route_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Timing Summary - Route Design" Name="impl_1_copy_1_route_report_timing_summary_0" Spec="report_timing_summary" RunStep="route_design" ReportFile="nexys_a7_top_timing_summary_routed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Incremental Reuse - Route Design" Name="impl_1_copy_1_route_report_incremental_reuse_0" Spec="report_incremental_reuse" RunStep="route_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Incremental Reuse - Route Design" Name="impl_1_copy_1_route_report_incremental_reuse_0" Spec="report_incremental_reuse" RunStep="route_design" ReportFile="nexys_a7_top_incremental_reuse_routed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Clock Utilization - Route Design" Name="impl_1_copy_1_route_report_clock_utilization_0" Spec="report_clock_utilization" RunStep="route_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Clock Utilization - Route Design" Name="impl_1_copy_1_route_report_clock_utilization_0" Spec="report_clock_utilization" RunStep="route_design" ReportFile="nexys_a7_top_clock_utilization_routed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Bus Skew - Route Design" Name="impl_1_copy_1_route_report_bus_skew_0" Spec="report_bus_skew" RunStep="route_design" Version="1" Minor="1">
|
||||
<ReportConfig DisplayName="Bus Skew - Route Design" Name="impl_1_copy_1_route_report_bus_skew_0" Spec="report_bus_skew" RunStep="route_design" ReportFile="nexys_a7_top_bus_skew_routed.rpt" Version="1" Minor="1">
|
||||
<ReportConfigOption Name="warn_on_violation" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Timing Summary - Post-Route Phys Opt Design" Name="impl_1_copy_1_post_route_phys_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="post_route_phys_opt_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Timing Summary - Post-Route Phys Opt Design" Name="impl_1_copy_1_post_route_phys_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="post_route_phys_opt_design" ReportFile="nexys_a7_top_timing_summary_postroute_physopted.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOption Name="warn_on_violation" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Bus Skew - Post-Route Phys Opt Design" Name="impl_1_copy_1_post_route_phys_opt_report_bus_skew_0" Spec="report_bus_skew" RunStep="post_route_phys_opt_design" Version="1" Minor="1">
|
||||
<ReportConfig DisplayName="Bus Skew - Post-Route Phys Opt Design" Name="impl_1_copy_1_post_route_phys_opt_report_bus_skew_0" Spec="report_bus_skew" RunStep="post_route_phys_opt_design" ReportFile="nexys_a7_top_bus_skew_postroute_physopted.rpt" Version="1" Minor="1">
|
||||
<ReportConfigOption Name="warn_on_violation" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="implementation_log" Name="impl_1_copy_1_bitstream_implementation_log_0" Spec="" RunStep="write_bitstream">
|
||||
<ReportConfig DisplayName="implementation_log" Name="impl_1_copy_1_bitstream_implementation_log_0" Spec="" RunStep="write_bitstream" ReportFile="nexys_a7_top.vdi">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
</ReportConfig>
|
||||
</ReportStrategy>
|
||||
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
|
||||
<RQSFiles>
|
||||
<RQSFilePath/>
|
||||
</RQSFiles>
|
||||
<RQSFiles/>
|
||||
</Run>
|
||||
<Run Id="impl_1_copy_2" Type="Ft2:EntireDesign" Part="xc7a100tcsg324-1" ConstrsSet="constrs_1" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" SynthRun="synth_1" IncludeInArchive="true" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/impl_1/impl_1_copy_2" AutoRQSDir="$PSRCDIR/utils_1/imports/impl_1/impl_1_copy_2" ParallelReportGen="true">
|
||||
<Strategy Version="1" Minor="2">
|
||||
<StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2024">
|
||||
<Desc>Default settings for Implementation.</Desc>
|
||||
</StratHandle>
|
||||
<StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2024"/>
|
||||
<Step Id="init_design"/>
|
||||
<Step Id="opt_design"/>
|
||||
<Step Id="power_opt_design"/>
|
||||
@ -512,122 +518,120 @@
|
||||
<Step Id="write_bitstream"/>
|
||||
</Strategy>
|
||||
<ReportStrategy Name="Vivado Implementation Default Reports" Flow="Vivado Implementation 2024" CtrlBit="true">
|
||||
<ReportConfig DisplayName="Timing Summary - Design Initialization" Name="impl_1_copy_2_init_report_timing_summary_0" Spec="report_timing_summary" RunStep="init_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Timing Summary - Design Initialization" Name="impl_1_copy_2_init_report_timing_summary_0" Spec="report_timing_summary" RunStep="init_design" ReportFile="nexys_a7_top_timing_summary_init.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="DRC - Opt Design" Name="impl_1_copy_2_opt_report_drc_0" Spec="report_drc" RunStep="opt_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="DRC - Opt Design" Name="impl_1_copy_2_opt_report_drc_0" Spec="report_drc" RunStep="opt_design" ReportFile="nexys_a7_top_drc_opted.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Timing Summary - Opt Design" Name="impl_1_copy_2_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="opt_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Timing Summary - Opt Design" Name="impl_1_copy_2_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="opt_design" ReportFile="nexys_a7_top_timing_summary_opted.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Timing Summary - Power Opt Design" Name="impl_1_copy_2_power_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="power_opt_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Timing Summary - Power Opt Design" Name="impl_1_copy_2_power_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="power_opt_design" ReportFile="nexys_a7_top_timing_summary_pwropted.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="IO - Place Design" Name="impl_1_copy_2_place_report_io_0" Spec="report_io" RunStep="place_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="IO - Place Design" Name="impl_1_copy_2_place_report_io_0" Spec="report_io" RunStep="place_design" ReportFile="nexys_a7_top_io_placed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Utilization - Place Design" Name="impl_1_copy_2_place_report_utilization_0" Spec="report_utilization" RunStep="place_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Utilization - Place Design" Name="impl_1_copy_2_place_report_utilization_0" Spec="report_utilization" RunStep="place_design" ReportFile="nexys_a7_top_utilization_placed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Control Sets - Place Design" Name="impl_1_copy_2_place_report_control_sets_0" Spec="report_control_sets" RunStep="place_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Control Sets - Place Design" Name="impl_1_copy_2_place_report_control_sets_0" Spec="report_control_sets" RunStep="place_design" ReportFile="nexys_a7_top_control_sets_placed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="verbose" Type="" Value="true"/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Incremental Reuse - Place Design" Name="impl_1_copy_2_place_report_incremental_reuse_0" Spec="report_incremental_reuse" RunStep="place_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Incremental Reuse - Place Design" Name="impl_1_copy_2_place_report_incremental_reuse_0" Spec="report_incremental_reuse" RunStep="place_design" ReportFile="nexys_a7_top_incremental_reuse_pre_placed.rpt.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Incremental Reuse - Place Design" Name="impl_1_copy_2_place_report_incremental_reuse_1" Spec="report_incremental_reuse" RunStep="place_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Incremental Reuse - Place Design" Name="impl_1_copy_2_place_report_incremental_reuse_1" Spec="report_incremental_reuse" RunStep="place_design" ReportFile="nexys_a7_top_incremental_reuse_placed.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Timing Summary - Place Design" Name="impl_1_copy_2_place_report_timing_summary_0" Spec="report_timing_summary" RunStep="place_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Timing Summary - Place Design" Name="impl_1_copy_2_place_report_timing_summary_0" Spec="report_timing_summary" RunStep="place_design" ReportFile="nexys_a7_top_timing_summary_placed.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Timing Summary - Post-Place Power Opt Design" Name="impl_1_copy_2_post_place_power_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="post_place_power_opt_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Timing Summary - Post-Place Power Opt Design" Name="impl_1_copy_2_post_place_power_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="post_place_power_opt_design" ReportFile="nexys_a7_top_timing_summary_postplace_pwropted.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Timing Summary - Post-Place Phys Opt Design" Name="impl_1_copy_2_phys_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="phys_opt_design" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfig DisplayName="Timing Summary - Post-Place Phys Opt Design" Name="impl_1_copy_2_phys_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="phys_opt_design" ReportFile="nexys_a7_top_timing_summary_physopted.rpt" Version="1" Minor="0" IsDisabled="true">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="implementation_log" Name="impl_1_copy_2_route_implementation_log_0" Spec="" RunStep="route_design">
|
||||
<ReportConfig DisplayName="implementation_log" Name="impl_1_copy_2_route_implementation_log_0" Spec="" RunStep="route_design" ReportFile="nexys_a7_top.vdi">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="DRC - Route Design" Name="impl_1_copy_2_route_report_drc_0" Spec="report_drc" RunStep="route_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="DRC - Route Design" Name="impl_1_copy_2_route_report_drc_0" Spec="report_drc" RunStep="route_design" ReportFile="nexys_a7_top_drc_routed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Methodology - Route Design" Name="impl_1_copy_2_route_report_methodology_0" Spec="report_methodology" RunStep="route_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Methodology - Route Design" Name="impl_1_copy_2_route_report_methodology_0" Spec="report_methodology" RunStep="route_design" ReportFile="nexys_a7_top_methodology_drc_routed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Power - Route Design" Name="impl_1_copy_2_route_report_power_0" Spec="report_power" RunStep="route_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Power - Route Design" Name="impl_1_copy_2_route_report_power_0" Spec="report_power" RunStep="route_design" ReportFile="nexys_a7_top_power_routed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Route Status - Route Design" Name="impl_1_copy_2_route_report_route_status_0" Spec="report_route_status" RunStep="route_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Route Status - Route Design" Name="impl_1_copy_2_route_report_route_status_0" Spec="report_route_status" RunStep="route_design" ReportFile="nexys_a7_top_route_status.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Timing Summary - Route Design" Name="impl_1_copy_2_route_report_timing_summary_0" Spec="report_timing_summary" RunStep="route_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Timing Summary - Route Design" Name="impl_1_copy_2_route_report_timing_summary_0" Spec="report_timing_summary" RunStep="route_design" ReportFile="nexys_a7_top_timing_summary_routed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Incremental Reuse - Route Design" Name="impl_1_copy_2_route_report_incremental_reuse_0" Spec="report_incremental_reuse" RunStep="route_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Incremental Reuse - Route Design" Name="impl_1_copy_2_route_report_incremental_reuse_0" Spec="report_incremental_reuse" RunStep="route_design" ReportFile="nexys_a7_top_incremental_reuse_routed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Clock Utilization - Route Design" Name="impl_1_copy_2_route_report_clock_utilization_0" Spec="report_clock_utilization" RunStep="route_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Clock Utilization - Route Design" Name="impl_1_copy_2_route_report_clock_utilization_0" Spec="report_clock_utilization" RunStep="route_design" ReportFile="nexys_a7_top_clock_utilization_routed.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Bus Skew - Route Design" Name="impl_1_copy_2_route_report_bus_skew_0" Spec="report_bus_skew" RunStep="route_design" Version="1" Minor="1">
|
||||
<ReportConfig DisplayName="Bus Skew - Route Design" Name="impl_1_copy_2_route_report_bus_skew_0" Spec="report_bus_skew" RunStep="route_design" ReportFile="nexys_a7_top_bus_skew_routed.rpt" Version="1" Minor="1">
|
||||
<ReportConfigOption Name="warn_on_violation" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Timing Summary - Post-Route Phys Opt Design" Name="impl_1_copy_2_post_route_phys_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="post_route_phys_opt_design" Version="1" Minor="0">
|
||||
<ReportConfig DisplayName="Timing Summary - Post-Route Phys Opt Design" Name="impl_1_copy_2_post_route_phys_opt_report_timing_summary_0" Spec="report_timing_summary" RunStep="post_route_phys_opt_design" ReportFile="nexys_a7_top_timing_summary_postroute_physopted.rpt" Version="1" Minor="0">
|
||||
<ReportConfigOption Name="max_paths" Type="" Value="10"/>
|
||||
<ReportConfigOption Name="report_unconstrained" Type="" Value="true"/>
|
||||
<ReportConfigOption Name="warn_on_violation" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="Bus Skew - Post-Route Phys Opt Design" Name="impl_1_copy_2_post_route_phys_opt_report_bus_skew_0" Spec="report_bus_skew" RunStep="post_route_phys_opt_design" Version="1" Minor="1">
|
||||
<ReportConfig DisplayName="Bus Skew - Post-Route Phys Opt Design" Name="impl_1_copy_2_post_route_phys_opt_report_bus_skew_0" Spec="report_bus_skew" RunStep="post_route_phys_opt_design" ReportFile="nexys_a7_top_bus_skew_postroute_physopted.rpt" Version="1" Minor="1">
|
||||
<ReportConfigOption Name="warn_on_violation" Type="" Value="true"/>
|
||||
<ReportConfigOutputOption Name="pb" Type="string" Value=""/>
|
||||
<ReportConfigOutputOption Name="rpx" Type="string" Value=""/>
|
||||
</ReportConfig>
|
||||
<ReportConfig DisplayName="implementation_log" Name="impl_1_copy_2_bitstream_implementation_log_0" Spec="" RunStep="write_bitstream">
|
||||
<ReportConfig DisplayName="implementation_log" Name="impl_1_copy_2_bitstream_implementation_log_0" Spec="" RunStep="write_bitstream" ReportFile="nexys_a7_top.vdi">
|
||||
<ReportConfigOption Name="dummy_option" Type="string"/>
|
||||
</ReportConfig>
|
||||
</ReportStrategy>
|
||||
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
|
||||
<RQSFiles>
|
||||
<RQSFilePath/>
|
||||
</RQSFiles>
|
||||
<RQSFiles/>
|
||||
</Run>
|
||||
</Runs>
|
||||
<Board/>
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
`include "sdvd_defs.sv"
|
||||
`ifdef VERILATOR
|
||||
`include "sdvd_defs.sv"
|
||||
`endif
|
||||
import sdvd_defs::SPEED;
|
||||
|
||||
//this interfaces with block ram
|
||||
|
||||
@ -1,27 +1,22 @@
|
||||
//NOTE: you should drive this with a slow clock to actually debounce input
|
||||
module debouncer(input logic clk, input reset, input source, output wire out);
|
||||
module debouncer(input logic clk, input reset, input source, output logic out);
|
||||
|
||||
logic pressed;
|
||||
assign out = pressed;
|
||||
|
||||
always_ff @(posedge clk) begin
|
||||
if (reset)
|
||||
pressed <= 0;
|
||||
else if (!pressed && source)
|
||||
pressed <= 1;
|
||||
else if (pressed && !source)
|
||||
pressed <= 0;
|
||||
else if (pressed && source)
|
||||
pressed <= 0;
|
||||
else if (!pressed && !source)
|
||||
if (!source) begin
|
||||
pressed <= 0;
|
||||
out <= 0;
|
||||
end
|
||||
else
|
||||
if (pressed)
|
||||
out <= 0;
|
||||
else begin
|
||||
pressed <= 1;
|
||||
out <= 1;
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
//always_ff (@posedge clk) begin
|
||||
//
|
||||
//end
|
||||
|
||||
|
||||
|
||||
endmodule
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
`include "sdvd_defs.sv"
|
||||
`ifdef VERILATOR
|
||||
`include "sdvd_defs.sv"
|
||||
`endif
|
||||
import sdvd_defs::SPEED;
|
||||
// Takes in a 100MHz clock and generates the very low freq signals needed
|
||||
// for driving the control logic
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
`include "sdvd_defs.sv"
|
||||
`ifdef VERILATOR
|
||||
`include "sdvd_defs.sv"
|
||||
`endif
|
||||
import sdvd_defs::SPEED;
|
||||
module nexys_a7_top(
|
||||
input logic CLK100MHZ, CPU_RESETN,
|
||||
|
||||
@ -9,7 +9,9 @@
|
||||
*
|
||||
* */
|
||||
|
||||
`include "sdvd_defs.sv"
|
||||
`ifdef VERILATOR
|
||||
`include "sdvd_defs.sv"
|
||||
`endif
|
||||
import sdvd_defs::SPEED;
|
||||
|
||||
module playback_controller(
|
||||
|
||||
5
lib/assertion_error.sv
Normal file
5
lib/assertion_error.sv
Normal file
@ -0,0 +1,5 @@
|
||||
// A global error counter, useful for when we're tracking error counts from
|
||||
// assertions
|
||||
package assertion_error;
|
||||
int errors;
|
||||
endpackage : assertion_error
|
||||
@ -1,4 +1,6 @@
|
||||
`include "sdvd_defs.sv"
|
||||
`ifdef VERILATOR
|
||||
`include "sdvd_defs.sv"
|
||||
`endif
|
||||
import sdvd_defs::SPEED;
|
||||
|
||||
module audio_buffer_tb;
|
||||
|
||||
34
verification/debouncer_assertions.sv
Normal file
34
verification/debouncer_assertions.sv
Normal file
@ -0,0 +1,34 @@
|
||||
`ifdef VERILATOR
|
||||
`include "assertion_error.sv"
|
||||
`endif
|
||||
module debouncer_assertions(input logic clk, reset,source, out);
|
||||
|
||||
// Check that no matter how long the button is held down, output will only be
|
||||
// high once
|
||||
property only_one_per_press_p;
|
||||
(source && out) |=> (source |-> ((!out) throughout (source[+])));
|
||||
endproperty
|
||||
only_one_per_press_a: assert property (@(posedge clk) only_one_per_press_p)
|
||||
else assertion_error::errors++;
|
||||
|
||||
// Check that the output is never high two cycles in a row
|
||||
property out_not_high_consecutively_p;
|
||||
out |=> !out;
|
||||
endproperty
|
||||
out_not_high_consecutively_a: assert property (@(posedge clk) out_not_high_consecutively_p)
|
||||
else assertion_error::errors++;
|
||||
|
||||
// Check that the output always turns off if the button is depressed
|
||||
property off_if_depressed_p;
|
||||
!source |-> !out;
|
||||
endproperty
|
||||
off_if_depressed_a: assert property (@(posedge clk) off_if_depressed_p)
|
||||
else assertion_error::errors++;
|
||||
|
||||
// Check that the output activates if the button is pressed
|
||||
property on_if_pressed_p;
|
||||
!source |=> (source |-> out);
|
||||
endproperty
|
||||
on_if_pressed_a: assert property (@(posedge clk) on_if_pressed_p);
|
||||
|
||||
endmodule
|
||||
@ -1,12 +1,18 @@
|
||||
`timescale 1ns / 1ps
|
||||
|
||||
`ifdef VERILATOR
|
||||
`include "assertion_error.sv"
|
||||
`endif
|
||||
import assertion_error::errors;
|
||||
module debouncer_tb;
|
||||
|
||||
parameter TESTCYCLES=1000;
|
||||
|
||||
logic clk,reset,source;
|
||||
wire out;
|
||||
|
||||
int errors;
|
||||
|
||||
debouncer Dut (.*);
|
||||
bind debouncer debouncer_assertions AssertDut (.*);
|
||||
|
||||
initial begin
|
||||
clk = 0;
|
||||
@ -14,12 +20,15 @@ initial begin
|
||||
end
|
||||
|
||||
initial begin
|
||||
// Turn assertions off during reset
|
||||
$assertoff;
|
||||
$display("Testing debouncer");
|
||||
reset = 1;
|
||||
source = 0;
|
||||
@(posedge clk);
|
||||
@(posedge clk);
|
||||
reset = 0;
|
||||
$asserton;
|
||||
@(posedge clk);
|
||||
source = 1;
|
||||
#1;
|
||||
@ -42,6 +51,7 @@ initial begin
|
||||
$error("Output not brought high during second press");
|
||||
errors++;
|
||||
end
|
||||
@(posedge clk);
|
||||
source = 0;
|
||||
@(posedge clk);
|
||||
#1;
|
||||
@ -50,8 +60,16 @@ initial begin
|
||||
errors++;
|
||||
end
|
||||
|
||||
$display("Generating random input to test assertions");
|
||||
for (int i=0; i<TESTCYCLES; i++) begin
|
||||
source = $urandom;
|
||||
@(posedge clk);
|
||||
end
|
||||
|
||||
if (errors == 0)
|
||||
$display("Found no errors while testing debouncer");
|
||||
else
|
||||
$display("ERROR: Found %0d errors while testing debouncer", errors);
|
||||
|
||||
$finish;
|
||||
|
||||
|
||||
@ -6,7 +6,9 @@
|
||||
* @date: [unsure of due date]
|
||||
*
|
||||
* */
|
||||
`include "sdvd_defs.sv"
|
||||
`ifdef VERILATOR
|
||||
`include "sdvd_defs.sv"
|
||||
`endif
|
||||
import sdvd_defs::SPEED;
|
||||
|
||||
module playback_controller_tb;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user