数电课程设计——课设一:加减计数器

为了帮助大家更好学习FPGA硬件语言,创立此资源

包含文件有:实验报告、仿真文件,资料很全,有问题可以私信

 一、实验内容

1、利用QuartusII和Modelsim实现100进制可逆计数器编码显示实验。

二、实验步骤

(1)安装软件

    事先安装好QuartusII和Modelsim两个软件。

(2)创建工程

数电课程设计——课设一:加减计数器_第1张图片

(3)编写代码

编写的.v顶层文件:

module counter_1(

    input clk,

    input rst,

    input flag,

    output out_c



);



reg [9:0] count;



always@(posedge clk or negedge rst)begin

if(!rst)begin

       count <= 0;                 //复位

end

else if(flag==1)begin

      if(count<99)

       count <= count + 1;     //flag为1,是加法计数器

      else

       count <= 0;              //计到99复位

end



else begin

      if(count==0)

       count <= 99;             //计到0复位

      else

       count <= count - 1;     //flag为0,是减法计数器

end



end







endmodule

编写的textbench文件:

`timescale 1 ns/ 1 ps

module counter_tb();

// constants                                          

// general purpose registers

// test vector input registers

reg clk;

reg flag;

reg rst;

// wires                                              

wire out_c;



// assign statements (if any)                         

counter_1 i1 (

// port map - connection between master ports and signals/registers  

    .clk(clk),

    .flag(flag),

    .out_c(out_c),

    .rst(rst)

);

initial                                               

begin                                                 

// code that executes only once                       

// insert code here --> begin                          

    clk = 0;

    rst = 0;

    #100 rst = 1;

    flag = 1;

    #1000 flag =0;        //初始化

   

// --> end                                                                 

end                                                   



always #5000 flag = ~flag;       //每5000ns之后flag翻转

always #10 clk = ~clk;           //时钟周期20ns                                   

endmodule

三、实验结果

数电课程设计——课设一:加减计数器_第2张图片

你可能感兴趣的:(fpga开发)