ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
3 декабря
188481 Топик полностью
Лeoнид Ивaнoвич (06.04.2010 16:30, просмотров: 634) ответил Shura на Там имхо от кода будет зависеть - на каком-то коде будет выигрыш, на каком-то нет
По краям, конечно, выигрыша не будет. Но в основном диапазоне выигрыш заметный. Всё получилось, вот исходник на AHDL: 
CONSTANT PWM_TOP_F = 10; -- PWM TOP fine
CONSTANT PWM_TOP_C = 10; -- PWM TOP coarse

SUBDESIGN S2PWM
(
	Clk					: INPUT;
	PowerL[3..0]		: INPUT;
	PowerH[3..0]		: INPUT;
	PWM					: OUTPUT;
)
VARIABLE
    CntH[3..0]       	: DFFE;
    CntL[4..0]       	: DFFE;
	PWMH, PWML			: NODE;
BEGIN
	CntH[].(clk, ena) = (Clk, vcc);
	CntL[].clk = Clk; PWML = CntL[4];

	IF CntH[] == PWM_TOP_C - 1
		THEN CntH[] = 0; CntL[].ena = vcc;
		ELSE CntH[] = CntH[] + 1; CntL[].ena = gnd;
	END IF;

	IF(PWML)
 		THEN CntL[] = CntL[] + (0,PowerL[]) - PWM_TOP_F;
	         PWMH = PowerH[] + 1 > CntH[];

		ELSE CntL[] = CntL[] + (0,PowerL[]);
	         PWMH = PowerH[] > CntH[];
	END IF;

	PWM = DFF(PWMH, Clk, , );

END;