Added modules to read sdcard data and cmd response
ci/woodpecker/push/test-workflow Pipeline was successful

These were realy headaches but the testbenches are passing. We need to
take a look at the audio_buffer testbench for sure, it is way wrong and
needs reworked to use the interface. Should do a pass through every
module probably.
This commit is contained in:
2025-06-07 21:57:17 -07:00
parent e32563131f
commit 71eecd18e8
8 changed files with 662 additions and 4 deletions
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<wave_config>
<wave_state>
</wave_state>
<db_ref_list>
<db_ref path="read_command_tb_behav.wdb" id="1">
<top_modules>
<top_module name="glbl" />
<top_module name="read_command_tb" />
</top_modules>
</db_ref>
</db_ref_list>
<zoom_setting>
<ZoomStartTime time="0.000 ns"></ZoomStartTime>
<ZoomEndTime time="1,370.001 ns"></ZoomEndTime>
<Cursor1Time time="330.000 ns"></Cursor1Time>
</zoom_setting>
<column_width_setting>
<NameColumnWidth column_width="533"></NameColumnWidth>
<ValueColumnWidth column_width="187"></ValueColumnWidth>
</column_width_setting>
<WVObjectSize size="11" />
<wvobject type="logic" fp_name="/read_command_tb/clk">
<obj_property name="ElementShortName">clk</obj_property>
<obj_property name="ObjectShortName">clk</obj_property>
</wvobject>
<wvobject type="logic" fp_name="/read_command_tb/reset">
<obj_property name="ElementShortName">reset</obj_property>
<obj_property name="ObjectShortName">reset</obj_property>
</wvobject>
<wvobject type="logic" fp_name="/read_command_tb/listen">
<obj_property name="ElementShortName">listen</obj_property>
<obj_property name="ObjectShortName">listen</obj_property>
</wvobject>
<wvobject type="logic" fp_name="/read_command_tb/sd_cmd">
<obj_property name="ElementShortName">sd_cmd</obj_property>
<obj_property name="ObjectShortName">sd_cmd</obj_property>
</wvobject>
<wvobject type="logic" fp_name="/read_command_tb/received">
<obj_property name="ElementShortName">received</obj_property>
<obj_property name="ObjectShortName">received</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_command_tb/out_data">
<obj_property name="ElementShortName">out_data[39:0]</obj_property>
<obj_property name="ObjectShortName">out_data[39:0]</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_command_tb/dut/state">
<obj_property name="ElementShortName">state[2:0]</obj_property>
<obj_property name="ObjectShortName">state[2:0]</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_command_tb/dut/counter">
<obj_property name="ElementShortName">counter[6:0]</obj_property>
<obj_property name="ObjectShortName">counter[6:0]</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_command_tb/dut/data_reg">
<obj_property name="ElementShortName">data_reg[39:0]</obj_property>
<obj_property name="ObjectShortName">data_reg[39:0]</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_command_tb/response_type">
<obj_property name="ElementShortName">response_type[2:0]</obj_property>
<obj_property name="ObjectShortName">response_type[2:0]</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_command_tb/dut/response_type_reg">
<obj_property name="ElementShortName">response_type_reg[2:0]</obj_property>
<obj_property name="ObjectShortName">response_type_reg[2:0]</obj_property>
</wvobject>
</wave_config>
@@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8"?>
<wave_config>
<wave_state>
</wave_state>
<db_ref_list>
<db_ref path="read_data_tb_behav.wdb" id="1">
<top_modules>
<top_module name="glbl" />
<top_module name="read_data_tb" />
<top_module name="sdvd_defs" />
</top_modules>
</db_ref>
</db_ref_list>
<zoom_setting>
<ZoomStartTime time="1,438.800 ns"></ZoomStartTime>
<ZoomEndTime time="1,718.201 ns"></ZoomEndTime>
<Cursor1Time time="618.800 ns"></Cursor1Time>
</zoom_setting>
<column_width_setting>
<NameColumnWidth column_width="533"></NameColumnWidth>
<ValueColumnWidth column_width="155"></ValueColumnWidth>
</column_width_setting>
<WVObjectSize size="18" />
<wvobject type="logic" fp_name="/read_data_tb/clk">
<obj_property name="ElementShortName">clk</obj_property>
<obj_property name="ObjectShortName">clk</obj_property>
</wvobject>
<wvobject type="logic" fp_name="/read_data_tb/sd_clk">
<obj_property name="ElementShortName">sd_clk</obj_property>
<obj_property name="ObjectShortName">sd_clk</obj_property>
</wvobject>
<wvobject type="logic" fp_name="/read_data_tb/reset">
<obj_property name="ElementShortName">reset</obj_property>
<obj_property name="ObjectShortName">reset</obj_property>
</wvobject>
<wvobject type="logic" fp_name="/read_data_tb/play">
<obj_property name="ElementShortName">play</obj_property>
<obj_property name="ObjectShortName">play</obj_property>
</wvobject>
<wvobject type="logic" fp_name="/read_data_tb/stop">
<obj_property name="ElementShortName">stop</obj_property>
<obj_property name="ObjectShortName">stop</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_data_tb/speed">
<obj_property name="ElementShortName">speed[3:0]</obj_property>
<obj_property name="ObjectShortName">speed[3:0]</obj_property>
</wvobject>
<wvobject type="logic" fp_name="/read_data_tb/playing">
<obj_property name="ElementShortName">playing</obj_property>
<obj_property name="ObjectShortName">playing</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_data_tb/sample">
<obj_property name="ElementShortName">sample[15:0]</obj_property>
<obj_property name="ObjectShortName">sample[15:0]</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_data_tb/counter">
<obj_property name="ElementShortName">counter[10:0]</obj_property>
<obj_property name="ObjectShortName">counter[10:0]</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_data_tb/test_memory">
<obj_property name="ElementShortName">test_memory[1023:0][15:0]</obj_property>
<obj_property name="ObjectShortName">test_memory[1023:0][15:0]</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_data_tb/bufferInterface/driver/addra">
<obj_property name="ElementShortName">addra[10:0]</obj_property>
<obj_property name="ObjectShortName">addra[10:0]</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_data_tb/bufferInterface/driver/dina">
<obj_property name="ElementShortName">dina[7:0]</obj_property>
<obj_property name="ObjectShortName">dina[7:0]</obj_property>
</wvobject>
<wvobject type="logic" fp_name="/read_data_tb/bufferInterface/driver/ena">
<obj_property name="ElementShortName">ena</obj_property>
<obj_property name="ObjectShortName">ena</obj_property>
</wvobject>
<wvobject type="logic" fp_name="/read_data_tb/bufferInterface/driver/address_half">
<obj_property name="ElementShortName">address_half</obj_property>
<obj_property name="ObjectShortName">address_half</obj_property>
</wvobject>
<wvobject type="logic" fp_name="/read_data_tb/sd_data">
<obj_property name="ElementShortName">sd_data</obj_property>
<obj_property name="ObjectShortName">sd_data</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_data_tb/readerDut/byte_shift">
<obj_property name="ElementShortName">byte_shift[7:0]</obj_property>
<obj_property name="ObjectShortName">byte_shift[7:0]</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_data_tb/readerDut/byte_counter">
<obj_property name="ElementShortName">byte_counter[3:0]</obj_property>
<obj_property name="ObjectShortName">byte_counter[3:0]</obj_property>
</wvobject>
<wvobject type="array" fp_name="/read_data_tb/readerDut/counter">
<obj_property name="ElementShortName">counter[13:0]</obj_property>
<obj_property name="ObjectShortName">counter[13:0]</obj_property>
</wvobject>
</wave_config>