beste mensen,

zou iemand mij kunnen helpen met het zoeken van de fouten in mijn stukje code ?!?
het gaat om het stukje genaamd servo en servo_controller.
de bedoeling is dat ik 5 waarden ingeef die 5 hoeken van de servo moeten voorstellen bev.(0g = 1200ms, 90g = 1500ms , 180g = 1800ms)
en dat de servo_controller er een netjes mapje van maakt.
en dat servo dan de hoek in graden geeft aan servo_controller die dan weer de goede delay aangeeft.

mocht er nog meer info nodig zijn hoor ik dat.

zie hier het quartus archive http://mangavalk.dyndns.org/firefly.qar

Wat voor code? en was zip niet handiger geweest? Zelfs Total Commander snapt qar niet...

hier een zip versie. (let op server tot 21:30 bereikbaar)
http://mangavalk.dyndns.org/FireFly.zip
qar is een archief voor de compiler Quartus II (Altera)

Misschien kan je de code kopiëren naar het forum? dan kan iedereen het zien.

misschien niet de beste oplossing, maar anders krijg ik weer geklaag om Groote lappen code.
http://mangavalk.dyndns.org/verilog.html

Post dan een klein stuk van je code :) Dan is het over een tijdje ook nog te lezen, je zip file is dan weg. Anyway, Quartus dus. Wat is het probleem? Ik voel me niet zo geroepen om het voor je te gaan debuggen.
Simuleren lijkt met het toverwoord hier (zoals gebruikelijk).

[Bericht gewijzigd door flipflop op (36%)]

het probleem is dat ik met deze test niet een puls krijg die ~1500ms moet zijn.
ik zal morgen de code neerzetten.
het is nu te laat om het uit te gaan zoeken zodat alleen de hoofd nodige delen hier komen.

hier de belangrijke stukjes.
zo klein mogelijk.


module hexapod 	(
	input				CLOCK_50,			// systeem clock
	input		[3:0]	key,			// 4 drukknoppen
	output 	[0:7]	led,			// 8 leds

					// pins I/O connector 40Polig
					
	output	IOA0,		// pin1		b16
	output	IOA1,		// pin2		
	output	IOA2,		// pin3		
	output	IOA3,		// pin4		
	output	IOA4,		// pin5		
	output	IOA5,		// pin6		
	output	IOA6,		// pin7		
	output	IOA7,		// pin8		
	output	IOA8,		// pin9		
	output	IOA9,		// pin10	
							// pin11	+5V	
							// pin12	GND
	output	IOA10,	// pin13	
	output	IOA11,	// pin14	
	output	IOA12,	// pin15	
	output	IOA13,	// pin16	
	output	IOA14,	// pin17	
	output	IOA15,	// pin18	
	output	IOA16,	// pin19	
	output	IOA17,	// pin20	
	input		IOA18,	// pin21	
	input		IOA19,	// pin22	
	output	IOA20,	// pin23	
	output	IOA21,	// pin24	
	output	IOA22,	// pin25	
	output	IOA23,	// pin26	
	output	IOA24,	// pin27	
	output	IOA25,	// pin28	
							// pin29	+3V3
							// pin30	GND
	output	IOA26,	// pin31	
	output	IOA27,	// pin32	
	output	IOA28,	// pin33	
	output	IOA29,	// pin34	
	output	IOA30,	// pin35	
	output	IOA31,	// pin36	
	output	IOA32,	// pin37	
	output	IOA33,	// pin38	
	output	IOA34,	// pin39	
	output	IOA35		// pin40	h4
	);




clock_module sys_clocks
	(
	.clk_50mhz		(CLOCK_50),
	.clk_100ns		(clk_100ns),
	.clk_1us			(clk_1us),
	.clk_10us		(clk_10us),
	.clk_100us		(clk_100us),
	.clk_1ms			(clk_1ms),
	.clk_10ms		(clk_10ms),
	.clk_100ms		(clk_100ms),
	.clk_1s			(clk_1s)
	);
	

	
reg [0:7] pos1,pos2,pos3,pos4,pos5,pos6,pos7,pos8,pos9,pos10,pos11,pos12,pos13,pos14,pos15,pos16,pos17,pos18;
servo servo1 
		(
		.clk_1us			(clk_1us),
		.servo_signal	(IOA17),
		.pos 				(128),//pos1[0:7]
		.cor_a			(900), //===
		.cor_b			(1200),//*
		.cor_c			(1500),//---
		.cor_d			(1800),//*
		.cor_e			(2100),//===
		.sycle			(20000),
		.led				(led)
		);
		
		

endmodule


	

module servo (
input								clk_1us,
input 			[0:7]	 		pos,
output 	reg 					servo_signal,
input				[0:12]		cor_a,
input				[0:12]		cor_b,
input				[0:12]		cor_c,
input				[0:12]		cor_d,
input				[0:12]		cor_e,
input				[0:15]		sycle,
output			[0:7]			led
);


//   ---registers--

reg [0:14]	tm1;
reg [0:7]	pos2;
reg init;

//   ---sub-programma---

servo_controller scm
(
.servo_in	(pos [0:7]),
.servo_uit	(pos2 [0:12]),
.clk			(clk_1us),
.cor_2_a		(cor_a [0:12]),
.cor_2_b		(cor_b [0:12]),
.cor_2_c		(cor_c [0:12]),
.cor_2_d		(cor_d [0:12]),
.cor_2_e		(cor_e [0:12])
);


//   ---hoofdprogramma---

always @ (posedge clk_1us)
begin
	led[0:7] = pos2[0:7];
	if (tm1!=sycle)
	begin
		tm1 <= tm1 + 1;
	end
	else 
	begin
		tm1 <= 0;
	end
	
end

always @ (posedge clk_1us)
begin

	if (init == 0)
	begin
		init=1;
		servo_signal=0;
	end	
	
	if (tm1 <= pos2)servo_signal = 1;
	else servo_signal <= 0;
end



endmodule


module servo_controller
			(
			input				[0:7]			servo_in,
			output	reg	[0:12]		servo_uit,
			input								clk,
			input				[0:12]		cor_2_a,
			input				[0:12]		cor_2_b,
			input				[0:12]		cor_2_c,
			input				[0:12]		cor_2_d,
			input				[0:12]		cor_2_e,
			output	reg					EN
			);

			
//  ---registers---
reg [0:8]	teller_1;
reg [0:8]	deelvactor = ((255)/(5-(1)));

//  ---registers---
reg [0:8][0:12] map;
//	 string/waarde

//  ---assing-programma---
assign servo_uit [0:12] = map [servo_in][0:12];

// ---hoofd-programma---
always @ (posedge clk)
begin
	if ((teller_1 <= 255)&(EN=0))
	begin
		if ((teller_1 >= 0) & (teller_1 <= deelvactor))													map[teller_1][0:12] = ((( cor_2_b - cor_2_a ) / deelvactor ) * teller_1 ) + cor_2_a;
		else if ((teller_1 >= ( deelvactor + 1 )) & (teller_1 <= (deelvactor * 2)))			map[teller_1][0:12] = ((( cor_2_c - cor_2_b ) / deelvactor ) * teller_1 ) + cor_2_b;
		else if ((teller_1 >= (( deelvactor * 2 ) + 1 )) & (teller_1 <= (deelvactor * 3)))	map[teller_1][0:12] = ((( cor_2_d - cor_2_c ) / deelvactor ) * teller_1 ) + cor_2_c;
		else if ((teller_1 >= (( deelvactor * 3 ) + 1 )) & (teller_1 <= (deelvactor * 4)))	map[teller_1][0:12] = ((( cor_2_e - cor_2_d ) / deelvactor ) * teller_1 ) + cor_2_d;
	end
	if (teller_1 == 255)
	begin
		EN = 1;
		//teller_1 = 0;
	end
	else teller_1++;
end

			
endmodule

een klein variable foutje heb ik al gevonden, maar ziet iemand de anderen fout ?!?

volgens mij zit er een fout in het laatste stukje code.
maar ik zie de fout niet.
kan iemand mij helpen