|
发送模块各个子模块
REBEGIN程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY REBEGIN IS
PORT
(
A,B : IN STD_LOGIC;
C : OUT STD_LOGIC
);
END REBEGIN;
ARCHITECTURE A OF REBEGIN IS
SIGNAL TEMP : STD_LOGIC;
BEGIN
PROCESS (A,B)
BEGIN
TEMP<=B;
IF(TEMP='1')THEN
C<='0';
ELSE
C<=A;
END IF;
END PROCESS;
END A;
REBEGIN_4程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY REBEGIN_4 IS
PORT(
A,B : IN STD_LOGIC;
EN : OUT STD_LOGIC
);
END REBEGIN_4;
ARCHITECTURE A OF REBEGIN_4 IS
SIGNAL TEMP : STD_LOGIC;
BEGIN
PROCESS (A,B)
BEGIN
TEMP<=A OR B;
IF(TEMP='1')THEN
EN<='1';
ELSE
EN<='0';
END IF;
END PROCESS;
END A;
EN程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY EN IS
PORT
(
EN,A : IN STD_LOGIC;
B : OUT STD_LOGIC
);
END EN;
ARCHITECTURE A OF EN IS
SIGNAL TEMP : STD_LOGIC;
BEGIN
PROCESS (EN)
BEGIN
TEMP<=EN;
IF(TEMP='1')THEN
B<=A;
ELSE
B<='0';
END IF;
END PROCESS;
END A;
FENPIN程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY FENPIN IS
PORT
(
CLK,EN : IN STD_LOGIC;
CLKOUT : OUT STD_LOGIC
);
END FENPIN;
ARCHITECTURE A OF FENPIN IS
SIGNAL NUMBER : INTEGER RANGE 0 TO 998;
BEGIN
PROCESS (EN,CLK)
BEGIN
IF(CLK 'EVENT AND CLK='1')THEN
IF(EN='1')THEN
CLKOUT<='1';
NUMBER<=NUMBER+1;
IF(NUMBER>=1)THEN
IF(NUMBER=998)THEN
NUMBER<=0;
END IF;
CLKOUT<='0';
END IF;
END IF;
END IF;
END PROCESS;
END A;
TRANSMIT程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY TRANSMIT IS
PORT
(
EN,CLK : IN STD_LOGIC;
CLKOUT : OUT STD_LOGIC
);
END TRANSMIT;
ARCHITECTURE A OF TRANSMIT IS
SIGNAL NUMBER : INTEGER RANGE 0 TO 998;
BEGIN
PROCESS (EN,CLK)
BEGIN
IF(CLK 'EVENT AND CLK='1')THEN
IF(EN='0')THEN
CLKOUT<='0';
ELSE
CLKOUT<='1';
NUMBER<=NUMBER+1;
IF(NUMBER>=1)THEN
IF(NUMBER=998)THEN
NUMBER<=0;
END IF;
CLKOUT<='0';
END IF;
END IF;
END IF;
END PROCESS;
END A;
ENCODE程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY ENCODE IS
PORT
(
EN,CLK,DATA_IN : IN STD_LOGIC;
ZO : OUT STD_LOGIC
);
END ENCODE;
ARCHITECTURE A OF ENCODE IS
SIGNAL COUNT : INTEGER RANGE 0 TO 3;
SIGNAL Z : STD_LOGIC;
SIGNAL NUMBER : INTEGER RANGE 0 TO 998;
BEGIN
PROCESS (CLK)
BEGIN
IF(EN='0')THEN
ZO<='0';
ELSE
IF(CLK 'EVENT AND CLK='1')THEN
IF(DATA_IN='0')THEN
ZO<='0';
ELSE
COUNT<=COUNT+1;
IF(COUNT=3)THEN
COUNT<=0;
END IF;
CASE COUNT IS
WHEN 0=>Z<='1';
WHEN 1=>Z<='0';
WHEN 2=>Z<='1';
WHEN 3=>Z<='0';
END CASE;
ZO<=Z;
END IF;
END IF;
END IF;
END PROCESS;
END A;
MUX2TO1程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MUX2TO1 IS
PORT
(
A,B,SEL : IN STD_LOGIC;
C : OUT STD_LOGIC
);
END MUX2TO1;
ARCHITECTURE A OF MUX2TO1 IS
SIGNAL TEMP : STD_LOGIC;
BEGIN
PROCESS (A,B,SEL)
BEGIN
TEMP<=SEL;
IF(TEMP='1')THEN
C<=A;
ELSE
C<=B;
END IF;
END PROCESS;
END A;
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?我要注册
x
|