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

📄 数字系统课程设计.txt

📁 数字系统的程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
TITLE '输出1HZ,输入100KHZ'
DECLARATIONS
     CLOCK_100KHZ PIN;
     CLOCK_1HZ PIN ISTYPE 'REG';
     CLOCK_4HZ PIN ISTYPE 'REG';
     CLOCK_8HZ PIN ISTYPE 'REG';
     [DATA17..DATA0] PIN ISTYPE 'REG';
     DATA = [DATA17..DATA0];
     c = .C.;
     x = .X.;
EQUATIONS
     DATA.CLK = CLOCK_100KHZ;
     CLOCK_1HZ.CLK = CLOCK_100KHZ;
     CLOCK_4HZ.CLK = CLOCK_100KHZ;
     CLOCK_8HZ.CLK = CLOCK_100KHZ;
     CLOCK_1HZ = 0;
     WHEN DATA == 100000-1 THEN{ DATA :=0; CLOCK_1HZ =1;}//正式使用时把2-1改成100000-1
                           ELSE  DATA := DATA +1;
     WHEN (DATA == 25000-1) # (DATA == 50000-1) # (DATA == 75000-1) # (DATA == 100000-1)
                           THEN CLOCK_4HZ :=1;
                           ELSE CLOCK_4HZ :=0;
     WHEN (DATA == 12500-1) # (DATA == 25000-1) # (DATA == 37500-1) # (DATA == 50000-1)
       # (DATA == 62500-1)  # (DATA == 75000-1) # (DATA == 87500-1) #(DATA == 100000-1)
                           THEN CLOCK_8HZ :=1;
                           ELSE CLOCK_8HZ :=0;
TEST_VECTORS([CLOCK_100KHZ]->[CLOCK_1HZ,DATA])
            [c]->[x,[x,x,x,x]];
            [c]->[x,[x,x,x,x]];
            [c]->[x,[x,x,x,x]];
            [c]->[x,[x,x,x,x]];
            [c]->[x,[x,x,x,x]];
            [c]->[x,[x,x,x,x]];
            [c]->[x,[x,x,x,x]];
            [c]->[x,[x,x,x,x]];
            [c]->[x,[x,x,x,x]];
            [c]->[x,[x,x,x,x]];
            [c]->[x,[x,x,x,x]];

END 

//////////////////

MODULE COUNTDEC64
INTERFACE(CLEAR,STOP,CLOCK,[SET5..SET0]->[HOUT3..HOUT0],[LOUT3..LOUT0],FULL);
TITLE '十进制计数器'
DECLARATIONS
    COUNT2TO10 INTERFACE([DATA_TWO5..DATA_TWO0]->[DATA_TENH3..DATA_TENH0],[DATA_TENL3..DATA_TENL0]);
    COUNT64 INTERFACE(CLEAR,STOP,CLOCK,[SET5..SET0]->[OUT5..OUT0],FULL);

    ENTERCOUNT FUNCTIONAL_BLOCK COUNT64;
    OUTDATA FUNCTIONAL_BLOCK COUNT2TO10;
    
    CLEAR,STOP,CLOCK,FULL PIN;
    [SET5..SET0] PIN;
    [HOUT3..HOUT0] PIN;
    [LOUT3..LOUT0] PIN;

    SET = [SET5..SET0];
    HOUT = [HOUT3..HOUT0];
    LOUT = [LOUT3..LOUT0];

    x = .X.;
    c = .C.;
EQUATIONS
    ENTERCOUNT.CLEAR = CLEAR;
    ENTERCOUNT.STOP = STOP;
    ENTERCOUNT.CLOCK = CLOCK;
    ENTERCOUNT.[SET5..SET0] = SET;
    FULL = ENTERCOUNT.FULL & !STOP;

    HOUT = OUTDATA.[DATA_TENH3..DATA_TENH0];
    LOUT = OUTDATA.[DATA_TENL3..DATA_TENL0];

    OUTDATA.[DATA_TWO5..DATA_TWO0] = ENTERCOUNT.[OUT5..OUT0];

TEST_VECTORS([CLEAR,STOP,CLOCK,SET]->[HOUT,LOUT,FULL])
             [1,1,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];
             [0,0,c,[0,0,1,1,1,1]]->[[x,x,x,x],[x,x,x,x],x];

END 
/////////////////////////////
MODULE COUNT2TO10
INTERFACE([DATA_TWO5..DATA_TWO0]->[DATA_TENH3..DATA_TENH0],[DATA_TENL3..DATA_TENL0]);
TITLE '二进制转化为十进制'
//[DATA_TWO5..DATA_TWO0] 输入二进制的数据最大值为64
//[DATA_TENH3..DATA_TENH0] 输出十进制数据的十位
//[DATA_TENL3..DATA_TENL0] 输出十进制数据的个位

DECLARATIONS
     [DATA_TWO5..DATA_TWO0] PIN ISTYPE 'COM';
     [DATA_TENH3..DATA_TENH0] PIN ISTYPE 'COM';
     [DATA_TENL3..DATA_TENL0] PIN ISTYPE 'COM';

TRUTH_TABLE([DATA_TWO5..DATA_TWO0]->[[DATA_TENH3..DATA_TENH0],[DATA_TENL3..DATA_TENL0]])
            [0,0,0,0,0,0]->[[0,0,0,0],[0,0,0,0]];//0
            [0,0,0,0,0,1]->[[0,0,0,0],[0,0,0,1]];//1
            [0,0,0,0,1,0]->[[0,0,0,0],[0,0,1,0]];//2
            [0,0,0,0,1,1]->[[0,0,0,0],[0,0,1,1]];//3
            [0,0,0,1,0,0]->[[0,0,0,0],[0,1,0,0]];//4
            [0,0,0,1,0,1]->[[0,0,0,0],[0,1,0,1]];//5
            [0,0,0,1,1,0]->[[0,0,0,0],[0,1,1,0]];//6
            [0,0,0,1,1,1]->[[0,0,0,0],[0,1,1,1]];//7
            [0,0,1,0,0,0]->[[0,0,0,0],[1,0,0,0]];//8
            [0,0,1,0,0,1]->[[0,0,0,0],[1,0,0,1]];//9

            [0,0,1,0,1,0]->[[0,0,0,1],[0,0,0,0]];//10
            [0,0,1,0,1,1]->[[0,0,0,1],[0,0,0,1]];//11
            [0,0,1,1,0,0]->[[0,0,0,1],[0,0,1,0]];//12
            [0,0,1,1,0,1]->[[0,0,0,1],[0,0,1,1]];//13
            [0,0,1,1,1,0]->[[0,0,0,1],[0,1,0,0]];//14
            [0,0,1,1,1,1]->[[0,0,0,1],[0,1,0,1]];//15
            [0,1,0,0,0,0]->[[0,0,0,1],[0,1,1,0]];//16
            [0,1,0,0,0,1]->[[0,0,0,1],[0,1,1,1]];//17
            [0,1,0,0,1,0]->[[0,0,0,1],[1,0,0,0]];//18
            [0,1,0,0,1,1]->[[0,0,0,1],[1,0,0,1]];//19

            [0,1,0,1,0,0]->[[0,0,1,0],[0,0,0,0]];//20
            [0,1,0,1,0,1]->[[0,0,1,0],[0,0,0,1]];//21
            [0,1,0,1,1,0]->[[0,0,1,0],[0,0,1,0]];//22
            [0,1,0,1,1,1]->[[0,0,1,0],[0,0,1,1]];//23
            [0,1,1,0,0,0]->[[0,0,1,0],[0,1,0,0]];//24
            [0,1,1,0,0,1]->[[0,0,1,0],[0,1,0,1]];//25
            [0,1,1,0,1,0]->[[0,0,1,0],[0,1,1,0]];//26
            [0,1,1,0,1,1]->[[0,0,1,0],[0,1,1,1]];//27
            [0,1,1,1,0,0]->[[0,0,1,0],[1,0,0,0]];//28
            [0,1,1,1,0,1]->[[0,0,1,0],[1,0,0,1]];//29

            [0,1,1,1,1,0]->[[0,0,1,1],[0,0,0,0]];//30
            [0,1,1,1,1,1]->[[0,0,1,1],[0,0,0,1]];//31
            [1,0,0,0,0,0]->[[0,0,1,1],[0,0,1,0]];//32
            [1,0,0,0,0,1]->[[0,0,1,1],[0,0,1,1]];//33
            [1,0,0,0,1,0]->[[0,0,1,1],[0,1,0,0]];//34
            [1,0,0,0,1,1]->[[0,0,1,1],[0,1,0,1]];//35
            [1,0,0,1,0,0]->[[0,0,1,1],[0,1,1,0]];//36
            [1,0,0,1,0,1]->[[0,0,1,1],[0,1,1,1]];//37
            [1,0,0,1,1,0]->[[0,0,1,1],[1,0,0,0]];//38
            [1,0,0,1,1,1]->[[0,0,1,1],[1,0,0,1]];//39

            [1,0,1,0,0,0]->[[0,1,0,0],[0,0,0,0]];//40
            [1,0,1,0,0,1]->[[0,1,0,0],[0,0,0,1]];//41
            [1,0,1,0,1,0]->[[0,1,0,0],[0,0,1,0]];//42
            [1,0,1,0,1,1]->[[0,1,0,0],[0,0,1,1]];//43
            [1,0,1,1,0,0]->[[0,1,0,0],[0,1,0,0]];//44
            [1,0,1,1,0,1]->[[0,1,0,0],[0,1,0,1]];//45
            [1,0,1,1,1,0]->[[0,1,0,0],[0,1,1,0]];//46
            [1,0,1,1,1,1]->[[0,1,0,0],[0,1,1,1]];//47
            [1,1,0,0,0,0]->[[0,1,0,0],[1,0,0,0]];//48
            [1,1,0,0,0,1]->[[0,1,0,0],[1,0,0,1]];//49

            [1,1,0,0,1,0]->[[0,1,0,1],[0,0,0,0]];//50
            [1,1,0,0,1,1]->[[0,1,0,1],[0,0,0,1]];//51
            [1,1,0,1,0,0]->[[0,1,0,1],[0,0,1,0]];//52
            [1,1,0,1,0,1]->[[0,1,0,1],[0,0,1,1]];//53
            [1,1,0,1,1,0]->[[0,1,0,1],[0,1,0,0]];//54
            [1,1,0,1,1,1]->[[0,1,0,1],[0,1,0,1]];//55
            [1,1,1,0,0,0]->[[0,1,0,1],[0,1,1,0]];//56
            [1,1,1,0,0,1]->[[0,1,0,1],[0,1,1,1]];//57
            [1,1,1,0,1,0]->[[0,1,0,1],[1,0,0,0]];//58
            [1,1,1,0,1,1]->[[0,1,0,1],[1,0,0,1]];//59

            [1,1,1,1,0,0]->[[0,1,1,0],[0,0,0,0]];//60
            [1,1,1,1,0,1]->[[0,1,1,0],[0,0,0,1]];//61
            [1,1,1,1,1,0]->[[0,1,1,0],[0,0,1,0]];//62
            [1,1,1,1,1,1]->[[0,1,1,0],[0,0,1,1]];//63

END 
///////////////////////////////////////
MODULE COUNT64
INTERFACE(CLEAR,STOP,CLOCK,[SET5..SET0]->[OUT5..OUT0],FULL);
TITLE '计数器'
//CLEAR 清零
//STOP 停止计数
//CLOCK 脉冲 1Hz
//[SET3..SET0] 计数器的模,最大模是十六
//[OUT3..OUT0] 输出计数值
//FULL 计数器进位

DECLARATIONS
    CLEAR,STOP,CLOCK PIN;
    [SET5..SET0] PIN;
    [OUT5..OUT0] PIN ISTYPE 'REG_D';
    FULL PIN ISTYPE 'REG_D';
    SET = [SET5..SET0];
    OUT = [OUT5..OUT0];
    x = .X.;
    c = .C.;

EQUATIONS
    FULL.CLK = CLOCK&!STOP;
    OUT.CLK = CLOCK&!STOP;
    FULL.AR = CLEAR;
    OUT.AR = CLEAR;
    FULL = 0;
    WHEN OUT >= SET-1 THEN { OUT := 0;
                             FULL := 1;} 
                      ELSE OUT := OUT + 1;
END 

⌨️ 快捷键说明

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