guolu.tdf

来自「这是实现在4条E1接口上捆绑实现8M传输的逻辑源码」· TDF 代码 · 共 94 行

TDF
94
字号
SUBDESIGN guolu
(
	RESET   :   INPUT;
	rd0		:	INPUT;
	rd1		:	INPUT;
	rd2		:	INPUT;
	rd3		:	INPUT;
	rd4		:	INPUT;
	rd5		:	INPUT;
	rd6		:	INPUT;
	rd7		:	INPUT;
	ale		:	INPUT;
	wr_oe		: 	OUTPUT;
)
VARIABLE
	guolu			: 	MACHINE WITH STATES 
					(
 						state0,
						state1,
						state2,
						state3,
 						state4,
       					state5	
					);
	rd_in[7..0]  	: node;
	length[15..0]	: dff;

BEGIN
	rd_in[0] = rd0;
	rd_in[1] = rd1;
	rd_in[2] = rd2;
	rd_in[3] = rd3;
	rd_in[4] = rd4;
	rd_in[5] = rd5;
	rd_in[6] = rd6;
	rd_in[7] = rd7;
	
	guolu.reset = !RESET;
 	guolu.clk = ale;
	length[].clk = ale;
	CASE guolu IS
		WHEN state0 =>
			IF rd_in[] == 170 THEN
				guolu = state1;
				wr_oe = VCC;
			ELSE 
				guolu = state0;
				wr_oe = GND;
			END IF;
			length[] = 0;
		WHEN state1 =>
			IF rd_in[] == 187 THEN
				guolu = state2;
				wr_oe = VCC;
			ELSE 
				guolu = state0;
				wr_oe = GND;
			END IF;
			length[] = 0;
		WHEN state2 =>
			IF rd_in[] == 204 THEN
				guolu = state3;
				wr_oe = VCC;
			ELSE 
				guolu = state0;
				wr_oe = GND;
			END IF;
			length[] = 0;
		WHEN state3 =>
			length[7..0] = rd_in[];
			length[15..8] = length[15..8];
			guolu = state4;
			wr_oe = VCC;
		WHEN state4 =>
			length[7..0] = length[7..0];
			length[15..8] = rd_in[];
			guolu = state5;
			wr_oe = VCC;
		WHEN state5 =>
			length[] = length[] - 1;
			IF (length[] == 0) THEN
				guolu = state0;
			ELSE
				guolu = state5;
			END IF;
			wr_oe = VCC;
		WHEN OTHERS =>
			guolu = state0;
			length[] = 0;
			wr_oe = GND;
	END CASE;
END;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?