数电实验:定时与分频实验

时钟脉冲为20MHZ

 

Family - ARTIX7实验板

Device - XC7A100TFPGA芯片

Package - FGG484

Speed  为 -2L

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date:    23:50:39 12/17/2018 
// Design Name: 
// Module Name:    Lab16 
// Project Name: 
// Target Devices: 
// Tool versions: 
// Description: 
//
// Dependencies: 
//
// Revision: 
// Revision 0.01 - File Created
// Additional Comments: 
//
//////////////////////////////////////////////////////////////////////////////////
module Lab16(
    input [1:0] SW, //供能选择
     input reset,
    input CLK,
     output reg OUT 
    );     
     reg [26:0] counter;  //计数
     
     always @(posedge CLK)
     begin
            if(reset)  //初始化
                begin
                    counter<=27'd0;
                    OUT<=1'b0;
                end
            else
                begin
                    if(SW[1:0]== 2'b00)  //分频0.5HZ
                        begin
                            if(counter == 25'd20000000)
                                begin
                                    OUT <= ~OUT;
                                    counter <= 27'd0;
                                end
                            else
                                counter <= counter+ 1'b1;
                        end
                    else if(SW[1:0]== 2'b01)  //分频1HZ
                            begin
                                    if(counter == 24'd10000000)
                                        begin
                                            OUT <= ~OUT;
                                            counter <= 27'd0;
                                        end
                                    else
                                        counter <= counter+ 1'b1;
                             end
                             else if(SW[1:0]== 2'b10)  //分频 2HZ
                                        begin
                                            if(counter == 23'd5000000)
                                                begin
                                                    OUT <= ~OUT;
                                                    counter <= 27'd0;
                                                end
                                            else
                                                counter <= counter+ 1'b1;
                                        end
                                    else if(SW[1:0]== 2'b11) //定时6s
                                                begin
                                                    if(counter == 27'd120000000)
                                                        begin
                                                            OUT <= ~OUT;
                                                            counter <= 27'd0;
                                                        end
                                                    else
                                                        counter <= counter+ 1'b1;
                                                end
                end            
     end

endmodule
 

管脚配置 

NET "reset" IOSTANDARD = LVCMOS18 | LOC = T3; 
NET "reset" CLOCK_DEDICATED_ROUTE = FALSE;
NET "SW[0]" IOSTANDARD = LVCMOS18 | LOC = U3; 
NET "SW[0]" CLOCK_DEDICATED_ROUTE = FALSE;
NET "SW[1]" IOSTANDARD = LVCMOS18 | LOC = T4;
NET "SW[1]" CLOCK_DEDICATED_ROUTE = FALSE;

NET "CLK"  IOSTANDARD = LVCMOS18 | LOC = H4; 

NET "OUT"  IOSTANDARD = LVCMOS18 | LOC = K1; 

NET "reset" PULLDOWN;
NET "SW[0]" PULLDOWN;
NET "SW[1]" PULLDOWN;

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值