Problem with Lattice Diamond IPExpress software.

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

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

Site Timeline