Commit e3d24fca authored by Dimitris Lampridis's avatar Dimitris Lampridis

genrams: when pre-loading a RAM with an init file, assert that the file size is…

genrams: when pre-loading a RAM with an init file, assert that the file size is not bigger than the size of the memory it is written to
parent c01bc0e1
...@@ -134,6 +134,10 @@ package body memory_loader_pkg is ...@@ -134,6 +134,10 @@ package body memory_loader_pkg is
end loop; end loop;
end loop; end loop;
if not endfile(f_in) then
report "f_load_mem_from_file(): file '"&file_name&"' is bigger than available memory" severity FAILURE;
end if;
file_close(f_in); file_close(f_in);
return mem; return mem;
end f_load_mem_from_file; end f_load_mem_from_file;
...@@ -173,6 +177,10 @@ package body memory_loader_pkg is ...@@ -173,6 +177,10 @@ package body memory_loader_pkg is
mem(I) := to_stdlogicvector(tmp_bv); mem(I) := to_stdlogicvector(tmp_bv);
end loop; end loop;
if not endfile(f_in) then
report "f_load_mem_from_file(): file '"&file_name&"' is bigger than available memory" severity FAILURE;
end if;
file_close(f_in); file_close(f_in);
return mem; return mem;
end f_load_mem32_from_file; end f_load_mem32_from_file;
...@@ -210,6 +218,10 @@ package body memory_loader_pkg is ...@@ -210,6 +218,10 @@ package body memory_loader_pkg is
mem(I) := to_stdlogicvector(tmp_bv); mem(I) := to_stdlogicvector(tmp_bv);
end loop; end loop;
if not endfile(f_in) then
report "f_load_mem_from_file(): file '"&file_name&"' is bigger than available memory" severity FAILURE;
end if;
file_close(f_in); file_close(f_in);
return mem; return mem;
end f_load_mem16_from_file; end f_load_mem16_from_file;
...@@ -247,6 +259,10 @@ package body memory_loader_pkg is ...@@ -247,6 +259,10 @@ package body memory_loader_pkg is
mem(I) := to_stdlogicvector(tmp_bv); mem(I) := to_stdlogicvector(tmp_bv);
end loop; end loop;
if not endfile(f_in) then
report "f_load_mem_from_file(): file '"&file_name&"' is bigger than available memory" severity FAILURE;
end if;
file_close(f_in); file_close(f_in);
return mem; return mem;
end f_load_mem8_from_file; end f_load_mem8_from_file;
...@@ -287,6 +303,10 @@ package body memory_loader_pkg is ...@@ -287,6 +303,10 @@ package body memory_loader_pkg is
mem(I) := to_stdlogicvector( tmp_bv((byte_idx+1)*8-1 downto byte_idx*8) ); mem(I) := to_stdlogicvector( tmp_bv((byte_idx+1)*8-1 downto byte_idx*8) );
end loop; end loop;
if not endfile(f_in) then
report "f_load_mem_from_file(): file '"&file_name&"' is bigger than available memory" severity FAILURE;
end if;
file_close(f_in); file_close(f_in);
return mem; return mem;
end f_load_mem32_from_file_split; end f_load_mem32_from_file_split;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment