EDA技术(VHDL)——0~9999的计数器电路的设计
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的计数器电路的设计相关推荐
- 单片机c 语言0-99,单片机“0~99”加法计数器程序的设计51单片机原理及应用.doc...
单片机"0~99"加法计数器程序的设计51单片机原理及应用 课 程 设 计 课程名称51单片机原理及应用题目名称单片机"0~99"加法计数器程序设计专业班级学生 ...
- 【数字逻辑与EDA技术】verilog HDL语法-期末考试重点总结
一.相关术语 BST(Boundary Scan Test)边界扫描测试 CAD(Computer Aided Design) 计算机辅助设计 CAE(Computer Aided Engineeri ...
- [EDA] 第1章 EDA技术概述-潘松版
第1章 EDA技术概述 知识点: 1.1 EDA技术及其发展 名称概念: EDA:Electronic Design Automation,即电子设计自动化,是指是以计算机为平台,使用通用软件包,开展 ...
- EDA技术的概念及范畴
EDA技术的概念及范畴 EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术.计算机技术.信息处理及智能化技术的最新成果,进行电子产品的自动设计. ...
- 简述基于EDA技术的FPGA设计
物联网.人工智能.大数据等新兴技术的推动,集成电路技术和计算机技术得到蓬勃发展.电子产品设计系统日趋数字化.复杂化和大规模集成化,各种电子系统的设计软件应运而生.在这些专业化软件中,EDA(Elect ...
- 在系统可编程器件一般使用计算机,eda技术与vhdl复习练习题.docx
EDA技术与VHDL复习练习题 探<习题一 > 一.填空题 TOC \o "1-5" \h \z 1. PLD的中文含义是:. 2. ASIC的中文含义是: . 3.& ...
- EDA技术与应用上机任务 电子信息类 Quartus II或Quartus Prime D触发器、半减器、全减器、可加减控制的50进制加减计数器。
EDA技术与应用上机任务书 上机目的 熟悉掌握Quartus II或Quartus Prime开发工具的使用. 掌握利用硬件描述语言(Verilog)设计简单程序的步骤及方法. 掌握若干组合逻辑电路及 ...
- EDA 电子设计自动化VHDL系列课程15 – 智力抢答电路的设计与实现
EDA 电子设计自动化VHDL系列课程15 – 智力抢答电路的设计与实现 本EDA系列介绍的系统环境是: 软件: VHDL编程语言 : 工具: Quartus13.0 FPGA 芯片是: Cyclon ...
- EDA技术课后题答案
第一章 1-1 EDA技术与ASIC设计和FPGA开发有什么关系? P3~4 答:利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现:FPGA和CPLD是实现这一途径的 ...
- EDA与VHDL题库
EDA题库 小记 分享一下题库,与人方便 选择题序号改变,总共有88道,其中问过老师的有高亮 文章目录 EDA题库 小记 一. 填空题(24) 二.选择题(88) 21th :star:标识符命名规则 ...
最新文章
- 搭建Linux0.11系统环境
- python 仪表盘数据显示_跟小白学Python数据分析——绘制仪表盘
- stm32 图像处理_假如STM32也有朋友圈
- vue-day02-vue常用特性
- 怎样写一篇优秀论文?看完受益匪浅!
- 【C语言】C语言里++能随便用吗?
- mybatis 报错 with invalid types () or values 0. Cause: java.lang.NoSuchMethodException:
- 【转】后端取得当前PAGE的方法
- 明明是OS问题,却认为是CPU,这个教训是什么
- js中使用HTML模板字符串
- 透视投影中已知两平面的单应矩阵,能否求出这两平面的夹角?
- AVKit 做一个页面类似于B站的视频页面 (第一种做法)
- 800万像素摄像头,评估可以看到多远的红绿灯【1】?
- 基于Vue使用Arco Design组件封装一个七牛云上传图片的函数
- Mysql数据库学习笔记[完结]
- java兵临城下_CentOS6.4 64位系统安装jdk
- 群晖NAS Git Server项目源代码管理 配置搭建
- Udp数据接收和发送代码
- iamp是什么意思计算机网络,IAMP是什么意思
- OTSU算法的原理介绍及C++和Python实现
热门文章
- 2019税改有哪些变化?什么是专项扣除?这些改动与你的工资息息相关!
- PRML读书会第九章 Mixture Models and EM(Kmeans,混合高斯模型,Expectation Maximization)...
- 计算机基础教案8,计算机应用基础教案8.2修饰演示文稿
- iOS 9 Spotlight搜索 OC版
- 多变量之间的关系可视化——Seaborn.pairplot
- 【Python】完美采集淘宝数据(附完整源代码和视频教程)
- uniapp图片添加水印
- 解决IOS引入H5页面Safari浏览器工具栏会遮挡页面底部展示
- 拒做背锅侠!如何利用网站性能优化驱动产品体验提升
- thinkphp5 layui分页样式