mirror of
https://github.com/xarc/harv.git
synced 2025-04-18 19:24:51 -04:00
Bug fix in load signed byte from data memory
This commit is contained in:
parent
ddf5d2e889
commit
8eebe99af5
2 changed files with 47 additions and 31 deletions
|
@ -12,7 +12,7 @@ entity sim_from_dump is
|
|||
end entity;
|
||||
|
||||
architecture arch of sim_from_dump is
|
||||
constant period : time := 100 ns;
|
||||
constant period : time := 20 ns;
|
||||
signal rstn : std_logic := '0';
|
||||
signal clk : std_logic := '0';
|
||||
signal start : std_logic := '0';
|
||||
|
@ -174,7 +174,7 @@ begin
|
|||
-- convert address to integer
|
||||
addr_v := to_integer(unsigned(dmem_addr_o));
|
||||
-- check if range is ok
|
||||
if addr_v < DATA_BASE_ADDR or addr_v > (DATA_BASE_ADDR + DATA_SIZE) then
|
||||
if addr_v < DATA_BASE_ADDR or addr_v >= (DATA_BASE_ADDR + DATA_SIZE) then
|
||||
dmem_err_i <= '1';
|
||||
else
|
||||
-- grant response
|
||||
|
@ -202,10 +202,7 @@ begin
|
|||
if dmem_usgn_o = '1' then
|
||||
dmem_rdata_i <= x"000000" & data_mem(addr_v);
|
||||
else
|
||||
dmem_rdata_i <= (
|
||||
31 downto 8 => data_mem(addr_v)(7),
|
||||
7 downto 0 => data_mem(0)
|
||||
);
|
||||
dmem_rdata_i <= (31 downto 8 => data_mem(addr_v)(7)) & data_mem(addr_v);
|
||||
end if;
|
||||
|
||||
-- half-word read with and without sign-extension
|
||||
|
@ -230,6 +227,7 @@ begin
|
|||
report "Wrong parameters to data memory" severity ERROR;
|
||||
|
||||
end case;
|
||||
report to_hstring(dmem_addr_o) & ": " & to_hstring(dmem_rdata_i);
|
||||
end if;
|
||||
end if;
|
||||
-- response for 1 cycle
|
||||
|
|
|
@ -12,15 +12,15 @@
|
|||
</db_ref>
|
||||
</db_ref_list>
|
||||
<zoom_setting>
|
||||
<ZoomStartTime time="42035834fs"></ZoomStartTime>
|
||||
<ZoomEndTime time="44520835fs"></ZoomEndTime>
|
||||
<Cursor1Time time="43030834fs"></Cursor1Time>
|
||||
<ZoomStartTime time="0fs"></ZoomStartTime>
|
||||
<ZoomEndTime time="17000001fs"></ZoomEndTime>
|
||||
<Cursor1Time time="17000000fs"></Cursor1Time>
|
||||
</zoom_setting>
|
||||
<column_width_setting>
|
||||
<NameColumnWidth column_width="196"></NameColumnWidth>
|
||||
<ValueColumnWidth column_width="66"></ValueColumnWidth>
|
||||
<NameColumnWidth column_width="170"></NameColumnWidth>
|
||||
<ValueColumnWidth column_width="81"></ValueColumnWidth>
|
||||
</column_width_setting>
|
||||
<WVObjectSize size="34" />
|
||||
<WVObjectSize size="40" />
|
||||
<wvobject type="array" fp_name="/sim_from_dump/INST_DUMP_FILE_PATH">
|
||||
<obj_property name="ElementShortName">INST_DUMP_FILE_PATH[1:33]</obj_property>
|
||||
<obj_property name="ObjectShortName">INST_DUMP_FILE_PATH[1:33]</obj_property>
|
||||
|
@ -92,6 +92,10 @@
|
|||
<obj_property name="label">reg_t0</obj_property>
|
||||
<obj_property name="Radix">HEXRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject type="array" fp_name="/sim_from_dump/harv_i/regfile_i/g_normal/regfile_w[10]">
|
||||
<obj_property name="ElementShortName">[10][31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">[10][31:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject type="array" fp_name="/sim_from_dump/harv_i/regfile_i/g_normal/regfile_w">
|
||||
<obj_property name="ElementShortName">regfile_w[31:0][31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">regfile_w[31:0][31:0]</obj_property>
|
||||
|
@ -143,6 +147,7 @@
|
|||
<wvobject type="group" fp_name="group177">
|
||||
<obj_property name="label">imem</obj_property>
|
||||
<obj_property name="DisplayName">label</obj_property>
|
||||
<obj_property name="isExpanded"></obj_property>
|
||||
<wvobject type="other" fp_name="/sim_from_dump/DATA_SIZE">
|
||||
<obj_property name="ElementShortName">DATA_SIZE</obj_property>
|
||||
<obj_property name="ObjectShortName">DATA_SIZE</obj_property>
|
||||
|
@ -167,14 +172,15 @@
|
|||
<wvobject type="group" fp_name="group4275">
|
||||
<obj_property name="label">dmem</obj_property>
|
||||
<obj_property name="DisplayName">label</obj_property>
|
||||
<wvobject type="array" fp_name="/sim_from_dump/dmem_data_i">
|
||||
<obj_property name="ElementShortName">dmem_data_i[31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">dmem_data_i[31:0]</obj_property>
|
||||
</wvobject>
|
||||
<obj_property name="isExpanded"></obj_property>
|
||||
<wvobject type="logic" fp_name="/sim_from_dump/dmem_req_o">
|
||||
<obj_property name="ElementShortName">dmem_req_o</obj_property>
|
||||
<obj_property name="ObjectShortName">dmem_req_o</obj_property>
|
||||
</wvobject>
|
||||
<wvobject type="logic" fp_name="/sim_from_dump/dmem_usgn_o">
|
||||
<obj_property name="ElementShortName">dmem_usgn_o</obj_property>
|
||||
<obj_property name="ObjectShortName">dmem_usgn_o</obj_property>
|
||||
</wvobject>
|
||||
<wvobject type="logic" fp_name="/sim_from_dump/dmem_wren_o">
|
||||
<obj_property name="ElementShortName">dmem_wren_o</obj_property>
|
||||
<obj_property name="ObjectShortName">dmem_wren_o</obj_property>
|
||||
|
@ -183,22 +189,13 @@
|
|||
<obj_property name="ElementShortName">dmem_gnt_i</obj_property>
|
||||
<obj_property name="ObjectShortName">dmem_gnt_i</obj_property>
|
||||
</wvobject>
|
||||
<wvobject type="logic" fp_name="/sim_from_dump/dmem_outofrange_i">
|
||||
<obj_property name="ElementShortName">dmem_outofrange_i</obj_property>
|
||||
<obj_property name="ObjectShortName">dmem_outofrange_i</obj_property>
|
||||
<wvobject type="array" fp_name="/sim_from_dump/dmem_rdata_i">
|
||||
<obj_property name="ElementShortName">dmem_rdata_i[31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">dmem_rdata_i[31:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject type="array" fp_name="/sim_from_dump/dmem_byte_en_o">
|
||||
<obj_property name="ElementShortName">dmem_byte_en_o[1:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">dmem_byte_en_o[1:0]</obj_property>
|
||||
<obj_property name="Radix">BINARYRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject type="logic" fp_name="/sim_from_dump/dmem_usgn_dat_o">
|
||||
<obj_property name="ElementShortName">dmem_usgn_dat_o</obj_property>
|
||||
<obj_property name="ObjectShortName">dmem_usgn_dat_o</obj_property>
|
||||
</wvobject>
|
||||
<wvobject type="array" fp_name="/sim_from_dump/dmem_data_o">
|
||||
<obj_property name="ElementShortName">dmem_data_o[31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">dmem_data_o[31:0]</obj_property>
|
||||
<wvobject type="array" fp_name="/sim_from_dump/dmem_wdata_o">
|
||||
<obj_property name="ElementShortName">dmem_wdata_o[31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">dmem_wdata_o[31:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject type="array" fp_name="/sim_from_dump/dmem_addr_o">
|
||||
<obj_property name="ElementShortName">dmem_addr_o[31:0]</obj_property>
|
||||
|
@ -230,4 +227,25 @@
|
|||
<obj_property name="ElementShortName">DATA_SIZE</obj_property>
|
||||
<obj_property name="ObjectShortName">DATA_SIZE</obj_property>
|
||||
</wvobject>
|
||||
<wvobject fp_name="divider81" type="divider">
|
||||
<obj_property name="label">ALU</obj_property>
|
||||
<obj_property name="DisplayName">label</obj_property>
|
||||
</wvobject>
|
||||
<wvobject type="array" fp_name="/sim_from_dump/harv_i/gen_normal_alu/alu_i/data1_i">
|
||||
<obj_property name="ElementShortName">data1_i[31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">data1_i[31:0]</obj_property>
|
||||
<obj_property name="Radix">HEXRADIX</obj_property>
|
||||
</wvobject>
|
||||
<wvobject type="array" fp_name="/sim_from_dump/harv_i/gen_normal_alu/alu_i/data2_i">
|
||||
<obj_property name="ElementShortName">data2_i[31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">data2_i[31:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject type="array" fp_name="/sim_from_dump/harv_i/gen_normal_alu/alu_i/operation_i">
|
||||
<obj_property name="ElementShortName">operation_i[3:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">operation_i[3:0]</obj_property>
|
||||
</wvobject>
|
||||
<wvobject type="array" fp_name="/sim_from_dump/harv_i/gen_normal_alu/alu_i/data_o">
|
||||
<obj_property name="ElementShortName">data_o[31:0]</obj_property>
|
||||
<obj_property name="ObjectShortName">data_o[31:0]</obj_property>
|
||||
</wvobject>
|
||||
</wave_config>
|
||||
|
|
Loading…
Add table
Reference in a new issue