jenardo
Newbie level 6
Hi all,
I successfully used a V2Pro development board to develop an 8051 and CAN system on chip. I used the Keil software to get a hex file then converted it to a ROM file in the 8051. All this was successful.
The ROM I used had a 16-bit address and 32-bit word. It is written by code as follows:
always @ (posedge clk)
begin
case(addr)
16'h0: data_out<=32'h12345678;
16'h1: data_out<=32'h12345678;
......
......
default: data_out<=32'h0;
endcase
end
This worked fine for small programs to test my IP.
When I got the hex file for the drivers and converted it to the ROM file, it reached an address of 16'h108D .... which is about 4K-word.
During mapping, 129 out of 44 block RAMs were used ... and so the process didn't continue because the FPGA doesn't have enough space.
I changed the sensitivity list to "addr" instead of "posedge clk". This resulted in distributed RAM being used instead of block RAM. And still I had a problem with size for overmapping of LUTs.
Here are my questions:
1- Is a 4K*32 bits ROM too large in size ??
Note: the CAN and 8051 used only 50% of the FPGA (xc2vp7-6fg456)
2- Is it really a size problem or is it a wrong mapping made by the tool?
3- If the size is the problem, can the on-board flash PROMs (used for programming the FPGA) be used as ROMs?
4- I need a solution to this problem.
Thanks for everyone in advance.
I successfully used a V2Pro development board to develop an 8051 and CAN system on chip. I used the Keil software to get a hex file then converted it to a ROM file in the 8051. All this was successful.
The ROM I used had a 16-bit address and 32-bit word. It is written by code as follows:
always @ (posedge clk)
begin
case(addr)
16'h0: data_out<=32'h12345678;
16'h1: data_out<=32'h12345678;
......
......
default: data_out<=32'h0;
endcase
end
This worked fine for small programs to test my IP.
When I got the hex file for the drivers and converted it to the ROM file, it reached an address of 16'h108D .... which is about 4K-word.
During mapping, 129 out of 44 block RAMs were used ... and so the process didn't continue because the FPGA doesn't have enough space.
I changed the sensitivity list to "addr" instead of "posedge clk". This resulted in distributed RAM being used instead of block RAM. And still I had a problem with size for overmapping of LUTs.
Here are my questions:
1- Is a 4K*32 bits ROM too large in size ??
Note: the CAN and 8051 used only 50% of the FPGA (xc2vp7-6fg456)
2- Is it really a size problem or is it a wrong mapping made by the tool?
3- If the size is the problem, can the on-board flash PROMs (used for programming the FPGA) be used as ROMs?
4- I need a solution to this problem.
Thanks for everyone in advance.