Hi All,
I'm doing an internal project for my tiny company and have chosen to use a Xilinx XC9572 and an Atmel ATMEGA324P along with 6 74LS245 transceivers for this portion.
This project is a board to interface to an ancient (but initially very expensive) machine, replacing the original interface with a modern one. The original is all 5V and I don't care about speed, density, power consumption or cost too much. I'm mostly interested in ease of implementation and reliability.
Anyway, I bought a Xilinx USB II cable the other day and was looking for any pointers or tips you may have.
I have both Windows XP SP3 and Ubuntu 8.04 available for development. I'd prefer to do most or all work under Ubuntu. Is that practical using the Xilinx toolset?
I am currently working on the schematic/board for the above and plan on clocking both the CPLD and uP at 20MHz. Any thoughts on the necessity of using a four-layer board (inner layers power/ground)?
The basic function of the CPLD will be to accept byte-wide writes to one of 16 possible registers from the "ancient machine" (Intel 8085 @3.0 MHz.) and to store this in the CPLD as a 12 bit value, possibly double-buffered, then to interrupt the uP. The uP will read and decode the 12 bit value from the CPLD and store the 8 bit part in RAM. Going in the other direction the uP will write to a single 8 bit wide register, possibly double-buffered, in the CPLD which will cause the CPLD to issue an interrupt to the "ancient machine". Sometime later the "ancient machine" will read the register in the CPLD and the CPLD will clear the interrupt line.
Back in '86-'88 I got fairly proficient with 22V10s and ABEL. I haven't done any programmable logic since then.
Later in this project I'll be using a mid-sized FPGA (probably Spartan
3) to implement some faster and more complex logic (specialized 20 Mbps data stream organized in scan lines)Thanks.