集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 998|回复: 1

发送模块各个子模块

[复制链接]
小舍YZ 发表于 2017-9-15 14:28:32 | 显示全部楼层 |阅读模式
发送模块各个子模块

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
fpga_feixiang 发表于 2017-9-15 14:56:38 | 显示全部楼层
还是VHDL的,
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-4-20 09:32 , Processed in 0.059523 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表