⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 importn7bits.tdf

📁 基于fpga的屏幕测试程序
💻 TDF
字号:
TITLE "Byte-serial import of N*7 bits";

%
program imports N*7 bits of data through one 8-bit IO expander for frantic

low-to-high MSB = clock highword (contains 7-bits address)
high-to-low MSB = clock lowword (contains 7-bits data) + clockout
updated from "import14bits.tdf" (by Eric Funke 16th march 2000)
Age van Dalfsen, 29th March 2000

updated to accomodate 7 more bits. Eric Funke, 10th august 2000
updated to accomodate 14 more bits. Eric Funke, 18th september 2000

At this moment "address" can be 0..4, therefore giving 7 * 7bits output.


%

CONSTANT NDELAY = 20;


SUBDESIGN importN7bits
(
clock					:	INPUT;
data[7..0]				:	INPUT;
Xout[293..0]			:	OUTPUT;
)

VARIABLE

Xoutbuf00[6..0]				:	DFFE;
Xoutbuf01[6..0]				:	DFFE;
Xoutbuf02[6..0]				:	DFFE;
Xoutbuf03[6..0]				:	DFFE;
Xoutbuf04[6..0]				:	DFFE;
Xoutbuf05[6..0]				:	DFFE;
Xoutbuf06[6..0]				:	DFFE;
Xoutbuf07[6..0]				:	DFFE;
Xoutbuf08[6..0]				:	DFFE;
Xoutbuf09[6..0]				:	DFFE;
Xoutbuf0a[6..0]				:	DFFE;
Xoutbuf0b[6..0]				:	DFFE;
Xoutbuf0c[6..0]				:	DFFE;
Xoutbuf0d[6..0]				:	DFFE;
Xoutbuf0e[6..0]				:	DFFE;
Xoutbuf0f[6..0]				:	DFFE;

Xoutbuf10[6..0]				:	DFFE;
Xoutbuf11[6..0]				:	DFFE;
Xoutbuf12[6..0]				:	DFFE;
Xoutbuf13[6..0]				:	DFFE;
Xoutbuf14[6..0]				:	DFFE;
Xoutbuf15[6..0]				:	DFFE;
Xoutbuf16[6..0]				:	DFFE;
Xoutbuf17[6..0]				:	DFFE;
Xoutbuf18[6..0]				:	DFFE;
Xoutbuf19[6..0]				:	DFFE;
Xoutbuf1a[6..0]				:	DFFE;
Xoutbuf1b[6..0]				:	DFFE;
Xoutbuf1c[6..0]				:	DFFE;
Xoutbuf1d[6..0]				:	DFFE;
Xoutbuf1e[6..0]				:	DFFE;
Xoutbuf1f[6..0]				:	DFFE;

Xoutbuf20[6..0]				:	DFFE;
Xoutbuf21[6..0]				:	DFFE;
Xoutbuf22[6..0]				:	DFFE;
Xoutbuf23[6..0]				:	DFFE;
Xoutbuf24[6..0]				:	DFFE;
Xoutbuf25[6..0]				:	DFFE;
Xoutbuf26[6..0]				:	DFFE;
Xoutbuf27[6..0]				:	DFFE;
Xoutbuf28[6..0]				:	DFFE;
Xoutbuf29[6..0]				:	DFFE;

lowword[6..0],highword[6..0]:	DFFE;
MSB_delay[NDELAY-1..0]		:	DFF;
MSB_transup,MSB_transdown	:	DFF;
MSB_transdown_delay			:	DFF;

BEGIN

MSB_delay0.d = data7;
MSB_delay0.clk = clock;

MSB_delay[NDELAY-1..1].d = MSB_delay[NDELAY-2..0].q;
MSB_delay[].clk = clock;

MSB_transup.clk = clock;
MSB_transup.d = ((MSB_delay[NDELAY-2].q) AND (NOT MSB_delay[NDELAY-1].q));

MSB_transdown.clk = clock;
MSB_transdown.d = ((NOT MSB_delay[NDELAY-2].q) AND (MSB_delay[NDELAY-1].q));

MSB_transdown_delay.clk = clock;
MSB_transdown_delay.d = MSB_transdown.q;

highword[].d = data[6..0];
highword[].clk = clock;
highword[].ena = MSB_transup.q;

lowword[].d = data[6..0];
lowword[].clk = clock;
lowword[].ena = MSB_transdown.q;

Xoutbuf00[].clk = clock;
Xoutbuf01[].clk = clock;
Xoutbuf02[].clk = clock;
Xoutbuf03[].clk = clock;
Xoutbuf04[].clk = clock;
Xoutbuf05[].clk = clock;
Xoutbuf06[].clk = clock;
Xoutbuf07[].clk = clock;
Xoutbuf08[].clk = clock;
Xoutbuf09[].clk = clock;
Xoutbuf0a[].clk = clock;
Xoutbuf0b[].clk = clock;
Xoutbuf0c[].clk = clock;
Xoutbuf0d[].clk = clock;
Xoutbuf0e[].clk = clock;
Xoutbuf0f[].clk = clock;
Xoutbuf10[].clk = clock;
Xoutbuf11[].clk = clock;
Xoutbuf12[].clk = clock;
Xoutbuf13[].clk = clock;
Xoutbuf14[].clk = clock;
Xoutbuf15[].clk = clock;
Xoutbuf16[].clk = clock;
Xoutbuf17[].clk = clock;
Xoutbuf18[].clk = clock;
Xoutbuf19[].clk = clock;
Xoutbuf1a[].clk = clock;
Xoutbuf1b[].clk = clock;
Xoutbuf1c[].clk = clock;
Xoutbuf1d[].clk = clock;
Xoutbuf1e[].clk = clock;
Xoutbuf1f[].clk = clock;

Xoutbuf20[].clk = clock;
Xoutbuf21[].clk = clock;
Xoutbuf22[].clk = clock;
Xoutbuf23[].clk = clock;
Xoutbuf24[].clk = clock;
Xoutbuf25[].clk = clock;
Xoutbuf26[].clk = clock;
Xoutbuf27[].clk = clock;
Xoutbuf28[].clk = clock;
Xoutbuf29[].clk = clock;

CASE (highword[].q) IS
WHEN  0 =>
	Xoutbuf00[].d = lowword[].q;
	Xoutbuf00[].ena = MSB_transdown_delay.q;
WHEN  1 =>
	Xoutbuf01[].d = lowword[].q;
	Xoutbuf01[].ena = MSB_transdown_delay.q;
WHEN  2 =>
	Xoutbuf02[].d = lowword[].q;
	Xoutbuf02[].ena = MSB_transdown_delay.q;
WHEN  3 =>
	Xoutbuf03[].d = lowword[].q;
	Xoutbuf03[].ena = MSB_transdown_delay.q;
WHEN  4 =>
	Xoutbuf04[].d = lowword[].q;
	Xoutbuf04[].ena = MSB_transdown_delay.q;
WHEN  5 =>
	Xoutbuf05[].d = lowword[].q;
	Xoutbuf05[].ena = MSB_transdown_delay.q;
WHEN  6 =>
	Xoutbuf06[].d = lowword[].q;
	Xoutbuf06[].ena = MSB_transdown_delay.q;
WHEN  7 =>
	Xoutbuf07[].d = lowword[].q;
	Xoutbuf07[].ena = MSB_transdown_delay.q;
WHEN  8 =>
	Xoutbuf08[].d = lowword[].q;
	Xoutbuf08[].ena = MSB_transdown_delay.q;
WHEN  9 =>
	Xoutbuf09[].d = lowword[].q;
	Xoutbuf09[].ena = MSB_transdown_delay.q;
WHEN 10 =>
	Xoutbuf0a[].d = lowword[].q;
	Xoutbuf0a[].ena = MSB_transdown_delay.q;
WHEN 11 =>
	Xoutbuf0b[].d = lowword[].q;
	Xoutbuf0b[].ena = MSB_transdown_delay.q;
WHEN 12 =>
	Xoutbuf0c[].d = lowword[].q;
	Xoutbuf0c[].ena = MSB_transdown_delay.q;
WHEN 13 =>
	Xoutbuf0d[].d = lowword[].q;
	Xoutbuf0d[].ena = MSB_transdown_delay.q;
WHEN 14 =>
	Xoutbuf0e[].d = lowword[].q;
	Xoutbuf0e[].ena = MSB_transdown_delay.q;
WHEN 15 =>
	Xoutbuf0f[].d = lowword[].q;
	Xoutbuf0f[].ena = MSB_transdown_delay.q;
WHEN 16 =>
	Xoutbuf10[].d = lowword[].q;
	Xoutbuf10[].ena = MSB_transdown_delay.q;
WHEN 17 =>
	Xoutbuf11[].d = lowword[].q;
	Xoutbuf11[].ena = MSB_transdown_delay.q;
WHEN 18 =>
	Xoutbuf12[].d = lowword[].q;
	Xoutbuf12[].ena = MSB_transdown_delay.q;
WHEN 19 =>
	Xoutbuf13[].d = lowword[].q;
	Xoutbuf13[].ena = MSB_transdown_delay.q;
WHEN 20 =>
	Xoutbuf14[].d = lowword[].q;
	Xoutbuf14[].ena = MSB_transdown_delay.q;
WHEN 21 =>
	Xoutbuf15[].d = lowword[].q;
	Xoutbuf15[].ena = MSB_transdown_delay.q;
WHEN 22 =>
	Xoutbuf16[].d = lowword[].q;
	Xoutbuf16[].ena = MSB_transdown_delay.q;
WHEN 23 =>
	Xoutbuf17[].d = lowword[].q;
	Xoutbuf17[].ena = MSB_transdown_delay.q;
WHEN 24 =>
	Xoutbuf18[].d = lowword[].q;
	Xoutbuf18[].ena = MSB_transdown_delay.q;
WHEN 25 =>
	Xoutbuf19[].d = lowword[].q;
	Xoutbuf19[].ena = MSB_transdown_delay.q;
WHEN 26 =>
	Xoutbuf1a[].d = lowword[].q;
	Xoutbuf1a[].ena = MSB_transdown_delay.q;
WHEN 27 =>
	Xoutbuf1b[].d = lowword[].q;
	Xoutbuf1b[].ena = MSB_transdown_delay.q;
WHEN 28 =>
	Xoutbuf1c[].d = lowword[].q;
	Xoutbuf1c[].ena = MSB_transdown_delay.q;
WHEN 29 =>
	Xoutbuf1d[].d = lowword[].q;
	Xoutbuf1d[].ena = MSB_transdown_delay.q;
WHEN 30 =>
	Xoutbuf1e[].d = lowword[].q;
	Xoutbuf1e[].ena = MSB_transdown_delay.q;
WHEN 31 =>
	Xoutbuf1f[].d = lowword[].q;
	Xoutbuf1f[].ena = MSB_transdown_delay.q;

WHEN  32 =>
	Xoutbuf02[].d = lowword[].q;
	Xoutbuf02[].ena = MSB_transdown_delay.q;
WHEN  33 =>
	Xoutbuf03[].d = lowword[].q;
	Xoutbuf03[].ena = MSB_transdown_delay.q;
WHEN  34 =>
	Xoutbuf04[].d = lowword[].q;
	Xoutbuf04[].ena = MSB_transdown_delay.q;
WHEN  35 =>
	Xoutbuf05[].d = lowword[].q;
	Xoutbuf05[].ena = MSB_transdown_delay.q;
WHEN  36 =>
	Xoutbuf06[].d = lowword[].q;
	Xoutbuf06[].ena = MSB_transdown_delay.q;
WHEN  37 =>
	Xoutbuf07[].d = lowword[].q;
	Xoutbuf07[].ena = MSB_transdown_delay.q;
WHEN  38 =>
	Xoutbuf08[].d = lowword[].q;
	Xoutbuf08[].ena = MSB_transdown_delay.q;
WHEN  39 =>
	Xoutbuf09[].d = lowword[].q;
	Xoutbuf09[].ena = MSB_transdown_delay.q;
WHEN  40 =>
	Xoutbuf00[].d = lowword[].q;
	Xoutbuf00[].ena = MSB_transdown_delay.q;
WHEN  41 =>
	Xoutbuf01[].d = lowword[].q;
	Xoutbuf01[].ena = MSB_transdown_delay.q;		

END CASE;

Xout[293..287]	= Xoutbuf1f[].q;
Xout[286..280]	= Xoutbuf1e[].q;
Xout[279..273]	= Xoutbuf1d[].q;
Xout[272..266]	= Xoutbuf1c[].q;
Xout[265..259]	= Xoutbuf1b[].q;
Xout[258..252]	= Xoutbuf1a[].q;
Xout[251..245]	= Xoutbuf19[].q;
Xout[244..238]	= Xoutbuf18[].q;
Xout[237..231]	= Xoutbuf17[].q;
Xout[230..224]	= Xoutbuf16[].q;

Xout[223..217]	= Xoutbuf1f[].q;
Xout[216..210]	= Xoutbuf1e[].q;
Xout[209..203]	= Xoutbuf1d[].q;
Xout[202..196]	= Xoutbuf1c[].q;
Xout[195..189]	= Xoutbuf1b[].q;
Xout[188..182]	= Xoutbuf1a[].q;
Xout[181..175]	= Xoutbuf19[].q;
Xout[174..168]	= Xoutbuf18[].q;
Xout[167..161]	= Xoutbuf17[].q;
Xout[160..154]	= Xoutbuf16[].q;
Xout[153..147]	= Xoutbuf15[].q;
Xout[146..140]	= Xoutbuf14[].q;
Xout[139..133]	= Xoutbuf13[].q;
Xout[132..126]	= Xoutbuf12[].q;
Xout[125..119]	= Xoutbuf11[].q;
Xout[118..112]	= Xoutbuf10[].q;

Xout[111..105]	= Xoutbuf0f[].q;
Xout[104..98]	= Xoutbuf0e[].q;
Xout[97..91]	= Xoutbuf0d[].q;
Xout[90..84]	= Xoutbuf0c[].q;
Xout[83..77]	= Xoutbuf0b[].q;
Xout[76..70]	= Xoutbuf0a[].q;
Xout[69..63]	= Xoutbuf09[].q;
Xout[62..56]	= Xoutbuf08[].q;
Xout[55..49]	= Xoutbuf07[].q;
Xout[48..42]	= Xoutbuf06[].q;
Xout[41..35]	= Xoutbuf05[].q;
Xout[34..28]	= Xoutbuf04[].q;
Xout[27..21]	= Xoutbuf03[].q;
Xout[20..14]	= Xoutbuf02[].q;
Xout[13..7]		= Xoutbuf01[].q;
Xout[6..0]		= Xoutbuf00[].q;

END;

⌨️ 快捷键说明

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