FPGARelated.com
Forums

Problem with Lattice Diamond IPExpress software.

Started by Cecil Bayona June 29, 2016
Not sure what to make of this problem, I am having IPexpress in Lattice 
Diamond generate a corrupted file if I define a RAM module for use with 
a soft CPU. I have a copy of the original generated file, but when I try 
to generate myself following the documentation, the file generated 
differs from the original by two words in the area of loading data into 
the RAM.

I have three soft CPUs that I have used IPexpress to generate the RAM 
module, and only one project has the problem, a project to create the 
ep16 soft CPU.

I tried after verifying in the manual that I had the right parameters 
when using IPexpress to create a new ram_memory.vhd file, below are some 
observations and steps taken to try to fix the problem;

1. The problem occurs only with the ep16 processor project.

2. From the latest version of Diamond 3.7.1 to version 1.4 and every 
version in between, they all have the same problem, there is a two word 
difference in the code between the original ram_memory.vhd file and the 
newly generated file. If those two words are not corrected, the loaded 
eForth software crashes.

3. The original ep16BIN.mem (binary image of the software), and a newly 
created copy are identical, so that is not the problem.

4. I looked on how one defines the ep16BIN.mem file and the method seems 
correct, the only difference I saw was the ep16BIN.mem file generated 
for the ep16 says that memory entries are 32 bits which is not correct, 
it should be 16 bits, but even after changing it, it still creates a 
ram_memory.vhd file with two wrong words.

5. The problem does not show up on the ep32, or PDP1 projects, it only 
has a problem on the ep16 project.

6. I went and created two new ep16 projects from scratch and the same 
thing happens.

7. I tried running the Lattice software in Windows 10, and Windows 7 and 
there is no difference.

8 If one uses the original ram_memory.vhd or a newly generated version 
with the two words corrections then all versions of Diamond create a 
working project, in both cases I use the same binary image of the software.

I'm going to have to think about this as I'm out of ideas at the 
present, If you have any ideas they would be welcomed.

I do need to figure out what is going on because I want to make changes 
to the ep16, ep32, and eventually work on the J1 CPU which involve 
making changes to the RAM module and I need to have reliable 
ram_memory.vhd file generated as I wont have anything to compare it to.

Thanks for putting up with a long post.
-- 
Cecil - k5nwa