姓名:杨汉雄
学号:19011210569
【嵌牛导读】Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司开发。两种HDL均为IEEE标准。
【嵌牛正文】
Quartus II 是Alter的综合性CPLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware 支持Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。本次实验使用verlilog语言在quatusII的环境下实现十进制计数器。
计数器是数字电路中最常见的模组单元,其功能是,当时钟的上升沿或下降沿到来时,内部的状态寄存器状态加一,当状态寄存器达到指定状态时,状态寄存器清零,输出进位信号。当我们使用0-9是个十进制数来表示寄存器状态时,其成为10进制计数器。计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能。计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数。
计数器的设计属于同步时序电路的设计范畴,传统同步时序逻辑电路的设计中需要对时序电路的输入、输出、状态、进行抽象及逻辑赋值,得到一个反映时序问题的状态转换图。对状态转换图进行化简优化,去掉重复状态,检查自启动特性,得到最简状态转移图,然后根据状态转移图确定状态方程,根据状态方程选择所需要的寄存器,最后在这些寄存器中实现电路连接方可实现。而使用verlilog语言实现时,我们只需要抽象出最原始的状态图,在逻辑功能上对其进行编程,编译器及EDA软件即可为我们生成最优的电路结构。
在QuartusII创建一个WVF文件,设置仿真器参数:将仿真器的仿真结束时间设定为 1s,仿真时间步长设定为 10ms;输入信号 clk为二进制类型,输出信号 y 为无符号十进制类型,cout 为二进制类型;输入信号 clk 为 10ms 周期的时钟信号。
可以看出,每个时钟到来时十进制计数器状态输出加一,每十个时钟到来时进位输出一个持续时间为1个时钟周期的进位高电平后,状态寄存器置0。通过把两个十进制计数器级联,可以形成一个百进制计数器,若在计数器的编写中加入同步复位或异步复位端口,可实现100以内任意数字的计数功能。