




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计数显示电路设计课 程: VHDL数字系统设计与测试老 师: 学 号: 姓 名: 计数显示电路设计一 设计要求设计输出为3位BCD码的计数显示电路。由三个模块构成:十进制计数器(BCD_CNT)、分时总线切换电路(SCAN)和七段显示译码器电路(DEC_LED)。BCD码计数电路从0计到9然后返回到0从新计数。3位BCD码计数器可以实现从0到999的十进制计数。要将计数过程用七段显示LED数码管显示出来,这里采用动态分时总线切换电路对数码管进行扫描,对数码管依次分时选中进行输出计数的个、十、百位的数据。框图如图1:图1二 设计原理图2是源程序的RTL级电路图(RTL Viewer )。整个设计分十进制计数器模块(BCD_CNT)、分时总线切换电路模块(SCAN)和七段显示译码器电路模块(DEC_LED)构成。总的输入为十进制计数器时钟clk,异步复位清零信号reset,分时总线切换电路时钟CL。在reset信号为0期间,在每个clk的上升沿计数器将加1。在每个cl的上升沿将会改变对三个数码管的扫描选通。总的输出为数码管选通信号sel(三位),输出到七段数码管的数据信号ledout(七位)。图2为了检验系统的正确与否,这里还添加了四个输出:十进制计数器输出c1(四位)、c2(四位)、c3(四位),分时总线切换电路一个输出q(四位),它是对计数器输出c1、c2、c3进行分时输出。分时选通个、十、百位的数码管并将相应要显示的数据输出到七段显示译码器电路(DEC_LED),由此实现数码管的动态扫描显示。三 VHDL实现(1)顶层模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity top is -定义了一个顶层的模块topport(clk,reset:in std_logic; CL:in std_logic; c1,c2,c3:out std_logic_vector(3 downto 0); ledout:out std_logic_vector(6 downto 0); q:out std_logic_vector(3 downto 0); sel:out std_logic_vector(2 downto 0);end top;architecture content of top issignal c1_1,c2_1,c3_1:std_logic_vector(3 downto 0);signal q_1:std_logic_vector(3 downto 0);-因为c1,c2,c3,q是中间信号量,也是输出,故引入c1_1,c2_1,c3_1q_1作为中间变量component BCD_CNT is -定义元件BCD_CNT port(clk,reset:in std_logic; c1,c2,c3:out std_logic_vector(3 downto 0);end component;component SCAN is -定义元件SCANport( c1,c2,c3:in std_logic_vector(3 downto 0); CL:in std_logic; q:out std_logic_vector(3 downto 0); sel:out std_logic_vector(2 downto 0);end component;component DEC_LED is -定义元件DEC_LEDport( q:in std_logic_vector(3 downto 0); ledout:out std_logic_vector(6 downto 0);end component;beginu1: BCD_CNT port map (clk,reset,c1_1,c2_1,c3_1); -调用元件实例BCD_CNTu2: SCAN port map(c1_1,c2_1,c3_1,CL,q_1,sel); -调用元件实例SCANu3: DEC_LED port map(q_1,ledout); -调用元件实例DEC_LEDc1=c1_1; -中间变量值赋给输出c2=c2_1;c3=c3_1;q =q_1; end content;(2)十进制计数器电路(BCD_CNT)模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity BCD_CNT is port(clk,reset:in std_logic; c1,c2,c3:out std_logic_vector(3 downto 0);end BCD_CNT;architecture cnt of BCD_CNT issignal cn1,cn2,cn3:std_logic_vector(3 downto 0); begin cnt1:process(clk,reset) begin if(reset=1) then cn1=0000; elsif(clkevent and clk=1) then if(cn19) then cn1=cn1+1; else cn1=0000; end if; end if; end process cnt1; c1=cn1; -个位计数 cnt2:process(cn1(3),reset) -cn1(3)是clk的十分频 begin if(reset=1) then cn2=0000; elsif(cn1(3)event and cn1(3)=0) then if(cn29) then cn2=cn2+1; else cn2=0000; end if; end if; end process cnt2; c2=cn2; -十位计数 cnt3:process(cn2(3),reset) -cn2(3)是clk的一百分频 begin if(reset=1) then cn3=0000; elsif(cn2(3)event and cn2(3)=0) then if(cn39) then cn3=cn3+1; else cn3=0000; end if; end if; end process cnt3; c3=cn3; -百位计数end cnt;(3)分时总线切换电路(SCAN)模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity SCAN is port( c1,c2,c3:in std_logic_vector(3 downto 0); cl:in std_logic; q:out std_logic_vector(3 downto 0); sel:out std_logic_vector(2 downto 0); end SCAN;architecture one of SCAN issignal cnt:std_logic_vector(1 downto 0);signal q_temp:std_logic_vector(3 downto 0);signal sel_temp:std_logic_vector(2 downto 0); begin p1:process(cl) -模3计数器 begin if(clevent and cl=1) then if(cnt2) then cnt=cnt+1; else cnt q_temp=c1; sel_temp q_temp=c2; sel_temp q_temp=c3; sel_temp null; end case; end process p2; q=q_temp; sel ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout null; end case; end process;end one; 四 仿真结果及分析图2是电路的总体输入输出仿真波形。图3由图3可以看出,当扫描频率CL很大的时候,sel从1、2、4变化,即在一个时刻,sel只有一位为高,计数器的输出只有一位C1或C2或C3选中,并且正确的输出。当复位信号reset先为高的时候清零,当变为低的时候随着clk上升沿到来计数器开始计数,从000999,c1为个位,十位为c2,c3是百位。计数器为0时,ledout输出为十六进制3F(2进制0111111),为1时输出为为06H,等等,输出正确。五 仿真结果的讨论由分析可知,扫描时钟CL必须要是clk的3倍以上,否则扫描到的数值状态会发生变化,不能扫描到所有的值,即会出现如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业投入产出联系课件
- 2025年甘肃省公务员考试真题
- 物业公司总经理经营责任合同5篇
- 方孔网交易合同6篇
- 平面基本形的构成课件
- Fmoc-L-Penicillamine-生命科学试剂-MCE
- 妍色摄影课件
- Ethyl-1-2-bromoacetyl-cyclopropanecarboxylate-生命科学试剂-MCE
- 2024-2025年航空航天金纳米粒子技术创新应用分析报告
- 工业废气深度净化技术在环保产业项目管理领域的应用与挑战报告
- 职高课件模板
- 【生物】第四节 激素调节课件-2025-2026学年人教版生物八年级上册
- 卫生院安全生产培训课件
- 医院信息安全保密培训课件
- 物流紧急事件应急预案方案
- 期中专题复习-词汇句型训练-2025-2026学年 译林版2024 英语八年级上册 原卷
- 2025年全国中小学校科普知识竞赛题库(+答案)
- 2.2创新永无止境教学课件 2025-2026学年度九年级上册 道德与法治 统编版
- 矿山爆破作业安全培训课件
- 2025-2026学年九年级英语上学期第一次月考 (四川成都专用) 2025-2026学年九年级英语上学期第一次月考 (四川成都专用)解析卷
- 高陡边坡稳定性控制技术及其工程实践
评论
0/150
提交评论