十进制加减计数器

2019-03-01 10:19

集成电路软件设计

实验二:十进制加减计数器

实验地点 实验时间 学 院 班 级 姓 名 学 号 成 绩 指导老师

年 月 日

一、设计任务

1、设计十进制加减计数器;

2、练习使用Modelsim软件和Synopsys公司的Design Compiler软件。 二、设计要求

1、十进制加减计数器;

2、控制端口控制加与减的计数;

3、输入时钟的频率自定,符合设计即可 三、预习要求

编写加减计数器的VHDL代码; library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all; entity counter is

port(clk ,up: in std_logic; q: out integer ); end ;

architecture one of counter is

signal count :integer range 0 to 99; begin

process(clk) begin

if clk'event and clk='1' then if up='1' then

if count=99 then count<=0; else count<=count+1; end if ;

elsif up='0' then

if count=0 then count<=29; else count<=count-1; end if ; end if; end if; end process ; q<=count; end ;

四、实验报告

使用Modelsim软件编译并仿真加减计数器的VHDL代码,编写Testbench,给出仿真结果;

LIBRARY ieee ;

USE ieee.std_logic_1164.all ; USE ieee.std_logic_unsigned.all ; ENTITY testbench IS

END ;

ARCHITECTURE counter_tb_arch OF testbench IS SIGNAL q :integer range 0 to 99 ; SIGNAL up:std_logic :='1'; SIGNAL clk:std_logic :='0'; COMPONENT counter

PORT (clk,up: in std_logic;

q:out integer range 0 to 99 ); END COMPONENT ; BEGIN

DUT : counter

PORT MAP ( q=> q ,up=> up ,clk => clk ) ; process(clk)

begin clk <= not clk after 20ns; end process;

up <= '0' after 1000ns; END ;

五、仿真波形

通过VHDL代码的编译成功和testbench的编写并对其编译、仿真,其仿真结果如下图所示:

六、网表电路

使用Design Compiler软件将加减计数器的VHDL代码综合成网表电路;

七、对比综合后的网表电路与前期VHDL代码,检查一致性。

通过对比生成网表电路的输入与输出管脚,结合生成网表中的每个模块的功能,同时对每个功能模块的分析,并从中得到网表电路运行后的结果,通过把功能网表的运行结果和vhdl的仿真结果比较,得到他们是一致的。

八、总结(实验过程中遇到的问题以及解决问题的过程。)

在编译时出现了许多错误?经过反复修改编译?再修改再编译最终排除了所有的错误。比如

刚开始在VHDL代码设计中输出端口q不是用integer既整形,结构不能十进制计数,后面改成整形,才能真正达到十进制的计数。在打来encounter软件时,由于modelsim 的软件没有关闭,使得unis操作系统没有响应。通过关闭操作系统然后重新开启后就可以运行。


十进制加减计数器.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:临沧市全员培训初中地理学习笔记

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: