EDA技术实验—— 0~9999的计数器电路的设计

一名南方不知名大学生的分享:始于模仿,成于创新 。

一、实验目的

1、学习Quartus II软件的基本使用方法。
2、学习北京革新GX-BICE-EDA/SOPC实验开发系统的基本使用方法。
3、学习Verilog HDL程序的基本结构和基本语句的使用。

二、实验内容

设计并完成一个计数范围为0~9999的4位10进制动态扫描显示电路DTCNT9999的设计、调试和硬件验证,并用北京革新GX-BICE-EDA/SOPC实验开发系统(具体芯片为EP3C55-FBGA484)进行硬件验证。

三、实验条件

开发软件 Quartus II 13.1
实验设备 GX-BICE-EDA/SOPC实验开发系统
拟用芯片 EP3C55-FBGA484

四、 实验设计

1、系统原理框图

为了简化设计并便于显示,该计数动态扫描显示电路分为两个层次,底层电路包括四个十进制计数器模块CNT10、动态显示控制信号产生模块CTRLS、数据动态显示控制模块DISPLAY等六个模块,再由着六个模块按照图所示的原理图构成顶层电路DTCNT9999。

DTCNT9999顶层原理图

2、主要模块的VHDL源程序
1) CNT10的VHDL源程序
// ——CNT10.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNT10 ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;ENA:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CO:OUT STD_LOGIC);
END ENTITY CNT10;
ARCHITECTURE ART OF CNT10 ISSIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK,CLR,ENA) ISBEGIN IF CLR='1' THEN CQI<="0000";ELSIF CLK'EVENT AND CLK='1' THEN IF ENA='1' THENIF CQI="1001" THENCQI<="0000";ELSE CQI<=CQI+'1';END IF;END IF;END IF;END PROCESS;PROCESS(CLK,CQI) ISBEGINIF CLK'EVENT AND CLK='1' THENIF CQI<"1001" THENCO<='0';ELSECO<='1';END IF;END IF;END PROCESS;CQ<=CQI;
END ARCHITECTURE ART;
2) CTRLS的VHDL源程序
——CTRLS.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CTRLS ISPORT(CLK: IN STD_LOGIC;      SEL: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));
END ENTITY CTRLS;
ARCHITECTURE ART OF CTRLS ISSIGNAL CNT: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINPROCESS(CLK) ISBEGINIF CLK'EVENT AND CLK='1' THENIF CNT="111" THEN CNT<="000";ELSE CNT<=CNT+'1';END IF ;END IF;END PROCESS;SEL<=CNT;
END ARCHITECTURE ART;
3) DISPLAY的VHDL源程序
——DISPLAY.VHD
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY DISPLAY ISPORT(SEL: IN STD_LOGIC_VECTOR(2 DOWNTO 0);DATAIN: IN STD_LOGIC_VECTOR(15 DOWNTO 0);COM: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SEG: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END ENTITY DISPLAY;
ARCHITECTURE ART OF DISPLAY ISSIGNAL DATA:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(SEL) ISBEGINCASE SEL ISWHEN "000" => COM<="11111110";WHEN "001" => COM<="11111101";WHEN "010" => COM<="11111011";WHEN "011" => COM<="11110111";WHEN "100" => COM<="11101111";WHEN "101" => COM<="11011111";WHEN "110" => COM<="10111111";WHEN "111" => COM<="01111111";WHEN OTHERS => COM<="11111111";END CASE ;END PROCESS;PROCESS(SEL) ISBEGINCASE SEL ISWHEN "000" =>DATA<=DATAIN(3 DOWNTO 0);WHEN "001" =>DATA<=DATAIN(7 DOWNTO 4);WHEN "010" =>DATA<=DATAIN(11 DOWNTO 8);WHEN "011" =>DATA<=DATAIN(15 DOWNTO 12);WHEN OTHERS=>DATA<="0000";END CASE;CASE DATA ISWHEN "0000" => SEG<="00111111";--3FHWHEN "0001" => SEG<="00000110";--06HWHEN "0010" => SEG<="01011011";--5BHWHEN "0011" => SEG<="01001111";--4FHWHEN "0100" => SEG<="01100110";--66HWHEN "0101" => SEG<="01101101";--6DHWHEN "0110" => SEG<="01111101";--7DHWHEN "0111" => SEG<="00000111";--07HWHEN "1000" => SEG<="01111111";--7FHWHEN "1001" => SEG<="01101111";--6FHWHEN OTHERS => SEG<="00000000";--00HEND CASE ;END PROCESS;
END ARCHITECTURE ART;
4)DTCNT9999的VHDL源程序
 --DTCNT9999.VHDL
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;ENTITY DTCNT9999 ISPORT(CLK1:IN STD_LOGIC;CLR:IN STD_LOGIC;ENA:IN STD_LOGIC;CLK2:IN STD_LOGIC;COM:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SEG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END ENTITY DTCNT9999;ARCHITECTURE ART OF DTCNT9999 ISCOMPONENT CNT10 ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;ENA:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CO:OUT STD_LOGIC);END COMPONENT CNT10;COMPONENT CTRLS ISPORT(CLK:IN STD_LOGIC;SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END COMPONENT CTRLS;COMPONENT DISPLAY ISPORT(SEL:IN STD_LOGIC_VECTOR(2 DOWNTO 0);DATAIN:IN STD_LOGIC_VECTOR(15 DOWNTO 0);COM: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SEG: OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT DISPLAY;SIGNAL S1,S2,S3,S4,S5:STD_LOGIC;SIGNAL S:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL DOUT:STD_LOGIC_VECTOR(15 DOWNTO 0);BEGINU1:CNT10  PORT MAP(CLK1,CLR,ENA,DOUT(3 DOWNTO 0),S1);U2:CNT10  PORT MAP(S1,CLR,ENA,DOUT(7 DOWNTO 4),S2);U3:CNT10  PORT MAP(S2,CLR,ENA,DOUT(11 DOWNTO 8),S3);U5:CNT10  PORT MAP(S3,CLR,ENA,DOUT(15 DOWNTO 12));U10:CTRLS  PORT MAP(CLK2,S(2 DOWNTO 0));U11:DISPLAY PORT MAP(S,DOUT,COM,SEG);
END ARCHITECTURE ART;

五、实验结果及总结

1、 仿真波形

本设计包括两个层次,先进行底层模块十进制计数器CNT10的仿真,再进行顶层模块DTCNT9999的仿真。

2、系统仿真结果

预期结果:每一个时钟上升沿来临时计数结果CQ+1,且CQ=9时产生进位。

CNT10的仿真结果如图所示

DTCNT9999的仿真结果如图所示

3、管脚锁定文件

根据DTCNT9999的电路结构图确定引脚的锁定如下图所示:

4、逻辑综合结果

使用Quartus II 13.0进行逻辑综合后,DTCNT9999的RTL视图如图所示:

六、实验总结

  • 经过本次实验,对Quratus II有了更深入的了解,学会并掌握了更多功能的操作。学会自己编写动态显示控制信号产生模块CTRLS以及数据动态显示控制模块DISPLAY。

  • 目前的学习仍是在老师的讲解、参考别人学习成果的基础上,对实验设计进行修改。例如:增加DISPLAY模块使实验能够在北京革新GX-BICE-EDA/SOPC实验开发系统上进行硬件验证。

  • 关于顶层电路原理图的画法请自行在网络上查找资料学习,关于管脚锁定我将专写一篇文章来记录学习过程中的收获。

  • 0~9999的4位10进制动态扫描显示电路DTCNT9999的VHDL程序包我已发布在CSDN资源中,链接:DTCNT9999.

EDA技术(VHDL)——0~9999的计数器电路的设计相关推荐

  1. 单片机c 语言0-99,单片机“0~99”加法计数器程序的设计51单片机原理及应用.doc...

    单片机"0~99"加法计数器程序的设计51单片机原理及应用 课 程 设 计 课程名称51单片机原理及应用题目名称单片机"0~99"加法计数器程序设计专业班级学生 ...

  2. 【数字逻辑与EDA技术】verilog HDL语法-期末考试重点总结

    一.相关术语 BST(Boundary Scan Test)边界扫描测试 CAD(Computer Aided Design) 计算机辅助设计 CAE(Computer Aided Engineeri ...

  3. [EDA] 第1章 EDA技术概述-潘松版

    第1章 EDA技术概述 知识点: 1.1 EDA技术及其发展 名称概念: EDA:Electronic Design Automation,即电子设计自动化,是指是以计算机为平台,使用通用软件包,开展 ...

  4. EDA技术的概念及范畴

    EDA技术的概念及范畴   EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术.计算机技术.信息处理及智能化技术的最新成果,进行电子产品的自动设计. ...

  5. 简述基于EDA技术的FPGA设计

    物联网.人工智能.大数据等新兴技术的推动,集成电路技术和计算机技术得到蓬勃发展.电子产品设计系统日趋数字化.复杂化和大规模集成化,各种电子系统的设计软件应运而生.在这些专业化软件中,EDA(Elect ...

  6. 在系统可编程器件一般使用计算机,eda技术与vhdl复习练习题.docx

    EDA技术与VHDL复习练习题 探<习题一 > 一.填空题 TOC \o "1-5" \h \z 1. PLD的中文含义是:. 2. ASIC的中文含义是: . 3.& ...

  7. EDA技术与应用上机任务 电子信息类 Quartus II或Quartus Prime D触发器、半减器、全减器、可加减控制的50进制加减计数器。

    EDA技术与应用上机任务书 上机目的 熟悉掌握Quartus II或Quartus Prime开发工具的使用. 掌握利用硬件描述语言(Verilog)设计简单程序的步骤及方法. 掌握若干组合逻辑电路及 ...

  8. EDA 电子设计自动化VHDL系列课程15 – 智力抢答电路的设计与实现

    EDA 电子设计自动化VHDL系列课程15 – 智力抢答电路的设计与实现 本EDA系列介绍的系统环境是: 软件: VHDL编程语言 : 工具: Quartus13.0 FPGA 芯片是: Cyclon ...

  9. EDA技术课后题答案

    第一章 1-1 EDA技术与ASIC设计和FPGA开发有什么关系?   P3~4 答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现:FPGA和CPLD是实现这一途径的 ...

  10. EDA与VHDL题库

    EDA题库 小记 分享一下题库,与人方便 选择题序号改变,总共有88道,其中问过老师的有高亮 文章目录 EDA题库 小记 一. 填空题(24) 二.选择题(88) 21th :star:标识符命名规则 ...

最新文章

  1. 搭建Linux0.11系统环境
  2. python 仪表盘数据显示_跟小白学Python数据分析——绘制仪表盘
  3. stm32 图像处理_假如STM32也有朋友圈
  4. vue-day02-vue常用特性
  5. 怎样写一篇优秀论文?看完受益匪浅!
  6. 【C语言】C语言里++能随便用吗?
  7. mybatis 报错 with invalid types () or values 0. Cause: java.lang.NoSuchMethodException:
  8. 【转】后端取得当前PAGE的方法
  9. 明明是OS问题,却认为是CPU,这个教训是什么
  10. js中使用HTML模板字符串
  11. 透视投影中已知两平面的单应矩阵,能否求出这两平面的夹角?
  12. AVKit  做一个页面类似于B站的视频页面 (第一种做法)
  13. 800万像素摄像头,评估可以看到多远的红绿灯【1】?
  14. 基于Vue使用Arco Design组件封装一个七牛云上传图片的函数
  15. Mysql数据库学习笔记[完结]
  16. java兵临城下_CentOS6.4 64位系统安装jdk
  17. 群晖NAS Git Server项目源代码管理 配置搭建
  18. Udp数据接收和发送代码
  19. iamp是什么意思计算机网络,IAMP是什么意思
  20. OTSU算法的原理介绍及C++和Python实现

热门文章

  1. 2019税改有哪些变化?什么是专项扣除?这些改动与你的工资息息相关!
  2. PRML读书会第九章 Mixture Models and EM(Kmeans,混合高斯模型,Expectation Maximization)...
  3. 计算机基础教案8,计算机应用基础教案8.2修饰演示文稿
  4. iOS 9 Spotlight搜索 OC版
  5. 多变量之间的关系可视化——Seaborn.pairplot
  6. 【Python】完美采集淘宝数据(附完整源代码和视频教程)
  7. uniapp图片添加水印
  8. 解决IOS引入H5页面Safari浏览器工具栏会遮挡页面底部展示
  9. 拒做背锅侠!如何利用网站性能优化驱动产品体验提升
  10. thinkphp5 layui分页样式