OK...forgive my inaccurate question but I was looking for books/ magazines which tell how to make hardware from PLDs (discussion on respective PCB design in the article would be an added bonus).
Arvind Gupta
I guess I don't understand what you mean by 'make hardware'. That's all FPGAs do...
I come up with some digital block diagram and a description of what I intend the device to do and then I write the HDL code to implement the design. Of course there is a lot of work on the perimeter of the device to connect various inputs and outputs but that's just details.
Given the fact that larger FPGAs only come in BGA packages (usually) plus the fact that BGAs are nearly impossible for a hobbyist to use, we tend to buy development boards which could be as simple as the FPGA and a bunch of headers to something more useful with switches, buttons and 7 segment displays.
http://store.digilentinc.com/fpga-programmable-logic/https://www.ztex.de/usb-fpga-2/usb-fpga-2.01.e.htmlIn any case, the code written in some HDL (Verilog, VHDL, System Verilog, etc) forms the logic expressions that are loaded into the FPGA. Same for CPLDs. The primary difference between a CPLD and an FPGA, in my opinion, is that CPLD don't include internal RAM. They also have far fewer logic blocks.
There is a higher layer to consider: How to design the system itself. There are many books on computer architecture and, basically, you take the description of a system, break it down into blocks and write the HDL to implement the blocks. These days we typically break a CPU down into two blocks, the datapath and the control block. The datapath deals with how data moves through the CPU. Internal registers, adders, memory interfaces, these are all in the datapath. The control block tells the datapath how to move data and when. The datapath does the work, the control block is the brains.
FPGAs are used for many things other than implementing CPUs but the process is the same. Describe the problem the FPGA is to solve, come up with some logical block diagram and then write the code. Followed by lots of testing...
Regardless of what you are building, there are a few standard building blocks. That is what is described in "HDL Chip Design" - building blocks. The other books I linked have to do with creating systems. Specifically CPUs but the process is the same regardless of what you are building. Grab a bunch of 'building blocks' and connect them together to solve a problem.