《实验3BCD码计数器.docx》由会员分享,可在线阅读,更多相关《实验3BCD码计数器.docx(5页珍藏版)》请在三一办公上搜索。
1、实验3BCD码计数器实验3:BCD码计数器的VHDL描述及仿真 一、实验目的: 1掌握BCD码计数器的VHDL描述方法 2理解逻辑综合的概念 3掌握RTL电路原理图分析的分析方法 二、实验工具:Quartus_II 9.0 三、实验原理: 1BCD码计数器设计原理 BCD码的特点是用4位2进制数来表示一位10进制数,计数输出为一个4*n位的二进制数。本实验要求实现一个m进制的计数器。 在BCD码计数器进行计数过程中,当低4位计数到“1001”时,再来计数脉冲,将低4位清0,并且相应的高4位加1,若此时高4位也为“1001”,则全部清0,这样可以构成一个100进制计数器。整体置数法,即在100进
2、制计数器的基础上,当计数计到m时,全部清零,即实现了m进制计数器。 2BCD码计数器的程序设计 对于BCD码计数器的设计,可以使用IF语句。在VHDL中,IF语句具有3种形式,下面对它们进行分别介绍。 (1) 具有开关控制的IF语句 主VHDL中,具有开关控制的IF语句是一种非常基本的顺序描述语句。通常,它的语法结构如下所示: IF THEN ; END IF; 当程序执行到IF语句时,如果IF语句中的条件成立,那么程序将执行后面的顺序处理语句;否则程序将跳出IF语句,转而去执行其他的程序处理语句。 (2) 具有二选择控制的IF语句 在VHDL中,具有二选择控制的IF语句经常用来描述具有两个分
3、支控制的逻辑功能电路。通常,它的语法结构如下所示: IF THEN ; ELSE ; END IF; 当程序执行到IF语句时,如果IF语句中的条件成立,那么程序将会执行后面的顺序处 理语句 1;否则程序将会去执行顺序处理语句2。 (3) 具有多选择控制的IF语句 在VHDL中,具有多选择控制的IF语句经常用来描述具有多个选择分支的逻辑功能电路。通常,它的语法结构如下所示: IF THEN 顺序处理语句1 ; ELSIF THEN ; ELSIF THEN ; ELSE ; END IF: 当程序执行到IF语句时,如果IF语句中的条件 1 成立,那么程序将会执行后面的顺序处理语句1;如果IF语句
4、中的条件 2 成立,那么程序将会执行后面的顺序处理语句 2; 依此 类推,如果IF语句中的条件 n-1 成立,那么程序将会执行后面的顺序处理语句 n-1; 如果IF语句中的前n-1个条件均不成立,那么程序将会去执行顺序处理语句n。 (4) IF 语句的嵌套 IF 语句也可以进行多层嵌套。在编写VHDL程序的过程中,IF 语句的嵌套可以用来解决描述具有复杂控制功能的逻辑电路的问题。下面通过IF语句的嵌套来描一个具有同步置位功能的 D 触发器,它的VHDL程序如下所示。 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY dff2 IS PORT(
5、D,clk,clr: in std_logic; Q: out std_logic ); END dff2; ARCHITECTURE a1 OF dff2 IS BEGIN process(clk,D,clr) begin if clkevent and clk=1 then if clr=0 then Q=0; else Q 按钮,全部加入。点击 OK 按钮,确认。 点击OK回到 Insert Node or Bus 对话框,再点击 OK 按钮,确认。 设置输出参数 选择EditEndtime1s 选择ViewFit In Window 选择EditGridsize50ns 为输入端口赋值。 将仿真模式设置为“功能仿真”模式。 选择好“功能仿真”模式后,选择菜单,点击【Generate Functional Simulation Netlist】命令,生成一个“功能仿真的网表文件”,运行完成后,点击确定。 开始功能仿真,在菜单下,选择启动仿真工具,或直接点击常用工具栏上的 5、RTL原理图 在左边的菜单栏中,在菜单下,选择下拉菜单列表中的,然后点击菜单,可得到RTL原理电路图。 按钮。仿真结束后,点击确认按钮。观察仿真结果,对比输入与输出之间的逻辑关系是否符合电路的逻辑功能。