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

📄 time_tst.tfw

📁 用VHDL写的运动计时表程序
💻 TFW
字号:
////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 1995-2003 Xilinx, Inc.
// All Right Reserved.
////////////////////////////////////////////////////////////////////////////////
//   ____  ____ 
//  /   /\/   / 
// /___/  \  /    Vendor: Xilinx 
// \   \   \/     Version : 8.1i
//  \   \         Application : ISE
//  /   /         Filename : time_tst.tfw
// /___/   /\     Timestamp : Tue Oct 31 20:19:53 2006
// \   \  /  \ 
//  \___\/\___\ 
//
//Command: 
//Design Name: time_tst
//Device: Xilinx
//
`timescale 1ns/1ps

module time_tst;
    reg clk = 1'b0;
    reg clr = 1'b0;
    reg load = 1'b0;
    reg [7:0] data_sec = 8'b01010010;
    reg [7:0] data_min = 8'b01011001;
    reg [7:0] data = 8'b00100011;
    wire [7:0] out_sec;
    wire [7:0] out_min;
    wire [7:0] out;

    parameter PERIOD = 40;
    parameter real DUTY_CYCLE = 0.5;
    parameter OFFSET = 0;

    initial    // Clock process for clk
    begin
        #OFFSET;
        forever
        begin
            clk = 1'b0;
            #(PERIOD-(PERIOD*DUTY_CYCLE)) clk = 1'b1;
            #(PERIOD*DUTY_CYCLE);
        end
    end

    time_going UUT (
        .clk(clk),
        .clr(clr),
        .load(load),
        .data_sec(data_sec),
        .data_min(data_min),
        .data(data),
        .out_sec(out_sec),
        .out_min(out_min),
        .out(out));

    integer TX_FILE = 0;
    integer TX_ERROR = 0;
    
    initial begin  // Open the results file...
        TX_FILE = $fopen("results.txt");
        #4840 // Final time:  4840 ns
        if (TX_ERROR == 0) begin
            $display("No errors or warnings.");
            $fdisplay(TX_FILE, "No errors or warnings.");
        end else begin
            $display("%d errors found in simulation.", TX_ERROR);
            $fdisplay(TX_FILE, "%d errors found in simulation.", TX_ERROR);
        end
        $fclose(TX_FILE);
        $stop;
    end

    initial begin // Process for clk
    end

    initial begin // Process for Asynchronous Signals
        // -------------  Current Time:  6ns
        #6;
        clr = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  1217ns
        #1210;
        clr = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  1229ns
        #12;
        clr = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  1414ns
        #185;
        load = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  1431ns
        #16;
        load = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  2073ns
        #642;
        clr = 1'b0;
        // -------------------------------------
        // -------------  Current Time:  2078ns
        #4;
        clr = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  3006ns
        #928;
        load = 1'b1;
        // -------------------------------------
        // -------------  Current Time:  3011ns
        #4;
        load = 1'b0;
        // -------------------------------------
    end

    task CHECK_out_sec;
        input [7:0] NEXT_out_sec;

        #0 begin
            if (NEXT_out_sec !== out_sec) begin
                $display("Error at time=%dns out_sec=%b, expected=%b", $time, out_sec, NEXT_out_sec);
                $fdisplay(TX_FILE, "Error at time=%dns out_sec=%b, expected=%b", $time, out_sec, NEXT_out_sec);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
    task CHECK_out_min;
        input [7:0] NEXT_out_min;

        #0 begin
            if (NEXT_out_min !== out_min) begin
                $display("Error at time=%dns out_min=%b, expected=%b", $time, out_min, NEXT_out_min);
                $fdisplay(TX_FILE, "Error at time=%dns out_min=%b, expected=%b", $time, out_min, NEXT_out_min);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask
    task CHECK_out;
        input [7:0] NEXT_out;

        #0 begin
            if (NEXT_out !== out) begin
                $display("Error at time=%dns out=%b, expected=%b", $time, out, NEXT_out);
                $fdisplay(TX_FILE, "Error at time=%dns out=%b, expected=%b", $time, out, NEXT_out);
                $fflush(TX_FILE);
                TX_ERROR = TX_ERROR + 1;
            end
        end
    endtask

endmodule

⌨️ 快捷键说明

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