📄 importn7bits.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 + -