复杂数字电路设计实验报告_数字抢答器(5)

2019-01-27 21:16

when 3 => data <=\when 4 => data <=\when 6 => data <=\when 8 => data <=\when 10=> data <=\

when others => data<= \

end case;

state<=Write_DataUp4; --写数据高四位

when Write_DataUp4=> LCD_RS<='1'; case cnt is

when 0 => data<= conv_std_logic_vector(65,8)(7 downto 4); when 1 => data<= conv_std_logic_vector(66,8)(7 downto 4); when 2=> data<= conv_std_logic_vector(67,8)(7 downto 4); when 3=> data<= conv_std_logic_vector(68,8)(7 downto 4);

when 4 => data<= point_ten_A(7 downto 4);

when 5 => data<= point_one_A(7 downto 4); when 6 => data<= point_ten_B(7 downto 4); when 7 => data<= point_one_B(7 downto 4); when 8 => data<= point_ten_C(7 downto 4); when 9 => data<= point_one_C(7 downto 4); when 10 => data<= point_ten_D(7 downto 4); when 11 => data<= point_one_D(7 downto 4); when others => data<= \

end case;

state <= Write_DataDown4; --写数据低4位

when Write_DataDown4 => case cnt is

when 0 => data<= conv_std_logic_vector(65,8)(3 downto 0); when 1 => data<= conv_std_logic_vector(66,8)(3 downto 0); when 2=> data<= conv_std_logic_vector(67,8)(3 downto 0); when 3=> data<= conv_std_logic_vector(68,8)(3 downto 0);

when 4 => data<= point_ten_A(3 downto 0); when 5 => data<= point_one_A(3 downto 0); when 6 => data<= point_ten_B(3 downto 0); when 7 => data<= point_one_B(3 downto 0); when 8 => data<= point_ten_C(3 downto 0); when 9 => data<= point_one_C(3 downto 0); when 10 => data<= point_ten_D(3 downto 0); when 11 => data<= point_one_D(3 downto 0); when others => data<= \

end case;

--if(cnt=7)then --cnt<=8;

--state<=Set_AddrUp; if(cnt=11)then cnt<=0;

state<=Set_AddrUp;

elsif(cnt=0 or cnt=1 or cnt=2 or cnt=3 or cnt=5 or cnt=7 or cnt=9)then cnt<=cnt+1; state<=Set_AddrUp;

else

cnt<=cnt+1;

state<=Write_DataUp4;

end if;

when others=>

state<=Write_instr;

end case;

end if; end process; end Behavioral;

五.仿真图(输入输出波形)以及分析:

Justify模块(第一信号鉴别及锁存模块)仿真图如下:

从上图可见,模块能够鉴别、缓存第一抢答信号并阻塞其他信号。 Violation模块(抢答鉴别及锁存模块)仿真图如下:

从上图可以看出,模块能够鉴别所有犯规的选手并缓存之。

Points模块(记分模块)仿真如下:

从上图可见,模块能够进行正常的加减运算。

Shaking模块(防抖模块)仿真如下:

从上图可见,当有毛刺的输入信号传来之后,防抖模块将其变为一定长度的规整的方波。

Timer模块(正常答题超时模块)仿真如下:

从上图可见,模块能够成功进行超时判断与提示。

Timer1模块(选中答题人,Timer3与之类似)仿真如下:

从上图可见,当有人按抢答器时,模块能够产生一定宽度的提示信息。

Timer2模块(清零信号发生模块)仿真如下:

从上图可见,当需要清零的时候,模块能够滞后一段时间,然后产生一定宽度的清零信

号。

全系统仿真图如下:(为了仿真,分频、防抖和清零信号等的延迟计数值略为修改)

从上图可见,整个系统鉴别第一信号、锁存、加减分、鉴别抢答犯规选手及各种犯规提

示、抢答成功提示等均能正常完成。

上图最后可见答题超时提示功能正常。 LCD模块仿真如下: LCD初始化阶段

LCD写地址写数阶段

六.实验问题分析和经验总结:

两周的课程设计,给我们最深的印象是,要设计一个成功的电路系统,一要有耐心,二要有坚强的毅力。在整个电路系统的设计过程中,花费时间最多的是各个电路单元的连接及电路的细节设计上,如每个模块都必须通过VHDL语言来生成,以便调用。在多种方案的选择中,我们仔细比较、分析其原理和可行性,最后选择了一个最优的设计方案,经过两个星期的奋战,终于使整个电路系统能够稳定工作。

通过课程设计,使我们对课堂上的理论知识有了进一步的了解,并增强了我们对复杂数

字系统这门课程的兴趣。此次实验,我们对ISE进行了进一步的应用和掌握,操作更为熟练,此外还对Spartan-3E Starter Kit Board各模块器件有了初步的了解。

整个实验过程中,我们深刻体会到在设计过程中,需要反复实践,其过程很可能及其繁

琐,有时花很长时间写的代码,烧到板子上测试却不成功,有些灰心,甚至想放弃,但是此时最重要的就是静下心来,查找原因,请教老师和同学,把不太清楚的地方彻底搞明白。

七.参考资料:

VHDL开发精解与实例剖析 詹仙宁 田耘 电子工业出版社

VHDL硬件描述语言与数字逻辑电路设计 侯伯亨 西安电子科技大学出版社


复杂数字电路设计实验报告_数字抢答器(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:毕业论文(设计)-矩阵初等变换及其应用

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

马上注册会员

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