So I'm a newbie to DPL, though I'm experienced w/ microcontrollers. I wrote code for a CPLD (xilinx target, though it can change if needed) that is supposed to run an A2D at high speed, communicate via SPI, and take the data and convert it to a manchester-encoded stream and output that. It seems to work fine in the simulator that I'm using (a trial version of silos came with the veriolog book I bought), but I'm getting warning with xilinx webpack. Also, when I run the synthesize option, it never finishes - just sits there spinning for awhile. I'm using the
6.3v of webpack as that's the version that works with the programmer I have, but I'm tempted to insall 7.0 just to see if that works any better. I'll proivde the errors I get, followed by a copy of the code I wrote. The clock (clk) is supposed externally generated, though I'm not sure how to implement it other than the way I did. I also rely heavily on delays in sending out the initalization strings - I'm not sure how it'll be implemented in the CPLD. There are only 64 flipflops in the target cpld that I want to use, so storing the init strings in flip-flop memory seemed wasteful.Any help, or pointers to good docs would be great! Thanks in advance, Reza
Analyzing top module . WARNING:Xst:854 - a2d.v line 22: Ignored initial statement. WARNING:Xst:916 - a2d.v line 32: Delay is ignored for synthesis. WARNING:Xst:854 - a2d.v line 35: Ignored initial statement. WARNING:Xst:916 - a2d.v line 47: Delay is ignored for synthesis. WARNING:Xst:905 - a2d.v line 44: The signals are missing in the sensitivity list of always block. WARNING:Xst:916 - a2d.v line 58: Delay is ignored for synthesis. WARNING:Xst:916 - a2d.v line 59: Delay is ignored for synthesis. WARNING:Xst:916 - a2d.v line 60: Delay is ignored for synthesis. WARNING:Xst:915 - Message (916) is reported only 5 times for each module.
module a2d(sck,dout,din,cs,tx); output sck; output dout; input din; output cs; output tx;
reg [31:0] wData = 0 ; reg wPointer;
reg sck; reg dout; reg cs; reg tx;
reg clk; reg outClock = 0; reg init; reg [3:0] bit; reg [3:0] bit2;
initial begin clk = 0; sck = 1; wPointer = 0; #10 init = 1; $monitor("data=",wData[3:0]); end
/* TEST CLOCK */ always #1 clk = ~clk;
initial begin cs