十进制加法计数器EDA大作业

合集下载

EDA实验报告——计数器

EDA实验报告——计数器

模323计数器设计实验报告一、实验内容在QuartusII平台上,利用VHDL代码实现学号323计数器的设计,并在三位数码管显示出来。

二、实验步骤与过程分析1、建立工程。

打开Quartus II软件平台,点击File---〉new project wizard建立一个工程xuehao_323,工程所在文件夹名字为xuehao_323,设置顶层实体名称为xuehao_323,点击next设置device,按照实验箱上FPGA的芯片名更改编程芯片的设置。

分析:选择的硬件平台是Altera EPF10K20TI144_4的FPGA试验箱。

2、添加VHDL文件。

在所在工程添加文件cnt10.vhd(十进制计数器),cnt_xuehao.vhd(323进制计数器),scan_led3_vhd.vhd(三位数码管显示),exp_cnt_xuehao323_7seg.vhd(数码管显示323三位学号计数器)四个文件。

这里通过老师给出的代码进行修改且理解:cnt10.vhd如下:分析:这是十进制计数器的VHDL代码设计,因为十进制有十个状态,所以输入数据和输出状态需要四位宽,其中输入端口有aclr 清零端,clock时钟信号,cnt_en使能端,data[3..0]数据输入,sload装载使能,当aclr为高电平有效时,输出清零,从0开始,计数为时钟信号clock的上升沿到来时且使能端cnt_en 为高电平有效时自动加1(sload为低电平时),如果装载使能sload为高电平有效时,则装载数据data[3..0],输出端口有两个,分别为cout(当q[3..0]为9时输出为高电平),q[3..0]变化为0—9循环变化。

cnt_xuehao.vhd分析如下:这里是调用cnt_10十进制计数器的元件例化来设计323(学号)计数器。

输入端口aclr(高电平有效清零端),clock(时钟信号上升沿有效),cnt_en(使能端),sload(装载时能,高电平有效时装在输入的数据),datab[3..0],datas[3..0],datag[3..0](三位学号的数据输入端,每位变化相当于一个十进制计数器);输出端口qb[3..0](百位)qs[3..0](十位)qg [3..0](个位)变化为qb qs qg=000到322共323中状态,当等于322时,输出cout为高电平指示达到一个循环。

EDA四则运算大作业报告

EDA四则运算大作业报告

《电子设计自动化》课程设计题目: 2位十进制四则运算器电路院(系)信息科学与工程学院专业通信工程专业届别 2011级班级11通信工程B班学号 1115107007 姓名陈晓涛任课老师彭盛亮摘要本次课程设计的主要内容为采用VHDL硬件描述语言实现2位十进制数(0~99)的四则运算,在Quartus Ⅱ软件上实现仿真,并利用EDA 实验箱实现输入、计算、显示输出的功能。

整个系统由输入模块、计算模块、和输出显示模块三个部分组成。

输入模块由5个脉冲按键构成,其中4个为数字输入、1个为计算模式选择;计算模块分为加法器、减法器、乘法器和除法器;输出显示模块由8个数码管和4个LED灯构成,其中前4个数码管显示待运算数值,后4个数码管显示运算结果,计算模式由4个LED灯的亮灭标识。

本计算器的输入采用了十位、个位分别输入的方法,方便了实际的操作,具有更好的实际应用意义。

同时模块化的设计方案,层次化的设计理念极大的简化了设计的复杂性、加快了设计速度,便于修改出现的错误和完善功能(增加模块实现),提高了效率。

目录第一章系统设计——————————————————————-------4一、设计要求————————————————————————————-----4二、系统设计方案——————————————————————————-----4 第二章单元电路设计————————————————————--------5一、加法单元————————————————————————————------5二、减法单元————————————————————————————------5三、乘法单元————————————————————————---———---—5四、除法单元———————————————————————————------—5 第三章软件设计——————————————————————-----—— 6一、输入模块——————————————————————————-------—-6二、计算模块——————————————————————————-----—---71、加法器——————————————————————————-----——72、减法器—————————————————————————-----———83、乘法器———————————————————————————-----—84、除法器———————————————————————————-----—9三、显示模块——————————————————————————----—-—-9 第四章系统测试————————————————————————-----10一、系统性能指标——————————————————————————---—10二、功能的测试方法、步骤—————————————————————---——10三、仪器设备名称、型号————————————————————---————10四、测试数据————————————————————————--—————10 第五章结论———————————————————————--—————11 参考文献—————————————————————————----——----11 附录——————————————————————————--———————11一、引脚分配图————————————————————---————--------11二、所用到的程序————————————————————————--———12第一章系统设计一、设计要求输入两个2位十进制数(0~99),输出它们的四则运算(加减乘除)结果;发光二极管显示运算模式;可调用LPM_MULT 及LPM_DIVIDE 模块。

(完整word版)EDA计算器设计大作业

(完整word版)EDA计算器设计大作业

计算器设计专业:电子信息工程设计者:本文介绍了一个简单的计算器的设计,该设计采用了现场可编程逻辑器件FPGA设计,并基于VHDL 语言实现加减乘除功能,并用十进制显示在数码管上.系统由计算部分、输入部分、选择部分、输出部分组成,计算部分为加法器、减法器、乘法器和除法器组成.使用Altera公司的QuartusII开发软件进行功能仿真并给出仿真波形,并下载到试验箱,用实验箱上的按键开关模拟输入,用数码管显示十进制计算结果.通过外部按键可以完成四位二进制数的加、减、乘、除四种运算功能,其结果简单,易于实现.关键字:VHDL,计算器,QuartusII一.实验目的 (4)二、流程图 (5)三.顶层原理图 (5)四、各个模块 (7)(1)加法器模块 (7)1、封装元件 (7)2、加法器程序 (7)3、仿真结果 (8)(2)减法器模块 (9)1、封装元件 (9)2、减法器程序 (10)3、仿真结果 (11)4、硬件运行结果 (11)(3)乘法器模块 (12)1、封装元件 (12)2、乘法器的设计思想 (13)3、乘法器程序 (14)4、仿真结果 (14)5、硬件运行结果 (15)(4)除法器模块 (16)1、封装元件 (16)2、除法器设计思想 (16)3、除法器程序 (16)4、仿真结果 (17)5、硬件运行结果 (17)(5)8位除法器 (18)1、封装元件 (18)2、8位除法器设计思想 (19)3、8位除法器程序 (19)4、仿真结果 (22)(6)数码管七段译码电路 (22)1、封装元件 (22)2、共阴极七段显示码十六进制转换表 (23)3、七段译码器程序 (23)4、仿真结果 (24)(7)选择模块 (24)1、封装元件 (24)2、程序 (25)五、管脚锁定 (26)六、小结与收获 (26)一.实验目的1、熟悉QuartusII软件的相关操作,掌握数字电路设计的基本流程.2、介绍QuartusII 的软件,掌握基本的设计思路,软件环境参数配置,仿真,管脚分配,下载等基本操作。

EDA实验二 含异步清零和同步使能的十进制加减法计数器

EDA实验二 含异步清零和同步使能的十进制加减法计数器

EDA实验二 含异步清零和同步使能的十进制加减法计数器一、实验目的1.了解加减计数器的工作原理。

2.进一步熟悉QUARTUSII 软件的使用方法和VHDL 输入。

3.熟悉仿真时序设定。

二、实验设备1.PC机 一台;四、实验内容完成一个0~99计数器,有四个输入信号:复位reset、使能enable、时钟clk和加减选择sel,三路输出信号:计数值、进位和借位信号。

要求每来一个时钟信号,加或减1(sel=‘0’时执行加,sel=‘1’时执行减);计数值为99时再加1,输出进位信号,并且计数值归零;计数值为0时再减1,输出借位信号,并且计数值变成99(即0~99循环计数);复位信号reset有效时(低电平有效)计数值清0,使能信号enable有效时(高电平有效)计数器才进行工作,否则不进行累加或累减。

五、实验步骤1.打开QUARTUSII 软件,新建一个VHDL文件。

2.输入程序代码,点击保存时,系统会提示建立一个新的工程(Project),按照QUARTUSII的提示建立好工程;3.按照实验原理和自己的想法,在VHDL 编辑窗口调整完成VHDL 程序;4.对自己编写的VHDL 程序进行编译,对程序的错误进行修改;5.进行仿真,附录:电路实体定义可参照如下:ENTITY counter ISPORT( clk, reset, enable ,sel : IN STD_LOGIC; --定义时钟、异步复位、同步使能、选择信号cq : OUT STD_LOGIC_VECTOR(6 downto 0); --计数值c1out : OUT STD_LOGIC; --进位信号c2out : OUT STD_LOGIC --借位信号);END counter;VHDL程序代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY counter ISPORT( clk, reset, enable ,sel : IN STD_LOGIC; --定义时钟、异步复位、同步使能、选择信号cq : OUT STD_LOGIC_VECTOR(6 downto 0); --计数值c1out : OUT STD_LOGIC; --进位信号c2out : OUT STD_LOGIC --借位信号);END counter;ARCHITECTURE counter99 OF counter ISBEGINPROCESS(clk, reset, enable ,sel)VARIABLE cot :STD_LOGIC_VECTOR(6 downto 0);BEGINIF reset='0' THEN cot:=(OTHERS=>'0');ELSIF clk'EVENT AND clk ='1' THENIF enable='1' THENIF sel='0' THEN c2out<='0';IF cot<99 THEN cot:=cot+1;c1out<='0';ELSE cot:=(OTHERS=>'0');c1out<='1';END IF;ELSIF sel='1' THEN c1out<='0';IF cot>0 THEN cot:=cot-1;c2out<='0';ELSE cot:="1100011";c2out<='1';END IF;END IF;END IF;END IF;cq<=cot;END PROCESS; END counter99;仿真结果如下:。

基于EDA的三位十进制计数器

基于EDA的三位十进制计数器

三位十进制计数器一、设计目的采用文本输入法设计三位十进制加法计数器。

编写VHDL源代码,得出正确的仿真波形,并在实验开发系统上进行硬件演示。

二、设计内容设计一个三位10进制计数器,对计数器相关的理论进行分析、归纳和总结;三位10进制计数器的结构组成及原理分析。

程序代码(含注释);给出程序中主要函数或者语句的功能说明和使用说明;给出程序仿真运行结果和图表、以及实验结果分析和总结。

三、计数器设计原理计数器的输入信号是计数信号(CLK),门控信号是手动清零信号(RESET)、手动允许计数(ENA)。

清零信号Rest为1时,保持在清零状态,计数脉冲上升沿无效;允许计数端为0时,为保持状态,这时保持至最后一个计数,计数脉冲上升沿无效;清零信号为0,允许计数信号为1时,计数器上升沿脉冲计数。

计数器是在数字系统中使用最多的时序电路,它不仅能用于对时钟脉冲计数,还可以用于分频,定时,产生节拍脉冲和脉冲序列以及进行数字运算等。

计数器是一个典型的时序电路,分析计数器就能更好地了解时序电路的特性。

三位十进制计数显示器的设计分三步完成。

先设计十进制计数电路,再设计显示译码电路,最后建立一个顶层文件将两者连接起来。

四、设计程序代码1)三位十进制计数程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COU10 ISPORT(CLK,RESET,CIN :IN STD_LOGIC;CO :OUT STD_LOGIC;BCDAP :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);BCDBP :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);BCDCP :OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COU3;ARCHITECTURE BEHAVE OF COU3 ISSIGNAL BCDAN:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL BCDBN:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL BCDCN:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINBCDAP<=BCDAN;BCDBP<=BCDBN;BCDCP<=BCDCN;KK1:PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THENIF(RESET='0')THENBCDAN<="0000";ELSIF(CIN='1')THENIF(BCDAN="1001")THENBCDAN<="0000";ELSEBCDAN<=BCDAN+'1';END IF;END IF;END IF;END PROCESS KK1;KK2:PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THENIF(RESET='0')THENBCDBN<="0000";ELSIF(CIN='1') AND (BCDAN="1001")THENIF(BCDBN="1001")THENBCDBN<="0000";ELSEBCDBN<=BCDBN+'1';END IF;END IF;END IF;END PROCESS KK2;KK3:PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THENIF(RESET='0')THENBCDCN<="0000";ELSIF(CIN='1') AND (BCDBN="1001") AND (BCDAN="1001")THENIF(BCDCN="1001")THENBCDCN<="0000";ELSEBCDCN<=BCDCN+'1';END IF;END IF;END IF;END PROCESS KK3;END BEHAVE;2)显示译码器程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY YIMAQI ISPORT(II:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Y :OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END SEG7;ARCHITECTURE BEHAVE OF SEG7 ISSIGNAL INDATA:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGININDATA<=II;PROCESS(INDATA)BEGINCASE INDATA ISWHEN"0000"=> Y<="0000001";WHEN"0001"=> Y<="1001111";WHEN"0010"=> Y<="0010010";WHEN"0011"=> Y<="0000110";WHEN"0100"=> Y<="1001100";WHEN"0101"=> Y<="0100100";WHEN"0110"=> Y<="0100000";WHEN"0111"=> Y<="0001111";WHEN"1000"=> Y<="0000000";WHEN"1001"=> Y<="0000100";WHEN"1010"=> Y<="0001000";WHEN"1011"=> Y<="1100000";WHEN"1100"=> Y<="0110001";WHEN"1101"=> Y<="1000010";WHEN"1110"=> Y<="0110000";WHEN"1111"=> Y<="0111000";WHEN OTHERS=>Y<="XXXXXXX";END CASE;END PROCESS;END BEHAVE;3)顶层文件:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DINGCEN ISPORT(CLK,RESET,ENA:IN STD_LOGIC;SEG1: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEG2: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEG3: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END COU37SEG;ARCHITECTURE X37 OF COU37SEG ISCOMPONENT SEG7PORT(II:IN STD_LOGIC_VECTOR(3 DOWNTO 0);Y :OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END COMPONENT;COMPONENT COU3PORT(CLK,RESET,CIN:IN STD_LOGIC;BCDAP: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);BCDBP: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);BCDCP: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;SIGNAL A,B,C:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINU0:COU3 PORT MAP(CLK,RESET,ENA,A,B,C);U1:SEG7 PORT MAP(A,SEG1);U2:SEG7 PORT MAP(B,SEG2);U3:SEG7 PORT MAP(C,SEG3);END X37;五、程序设计步骤1)打开ispEXPERT软件,建立一个新的工程cnt10;1 单击菜单File→New Project2 输入工程路径,工程名2)建立VHDL文件单击File→New菜单项,选择VHDL File选项,单击OK按钮以建立VHDL文件,分别建立十进制计数程序的vhd文件COU10.vhd,显示译码器vhd文件YIMAQI.vhd和顶层文件DINGNGCEN.vhd3)然后设定管脚4)最后保存编译运行,生成可下载到板子里面的jed文件5)器件下载6)波形仿真结果六、设计结果与分析三位十进制加法计数器实现了从000到999的计数,当计数到999时,计数器的输出置0,下一次又从0到999计数。

太原理工大学EDA实验报告-2位十进制加法器

太原理工大学EDA实验报告-2位十进制加法器

实验报告课程名称:EDA技术与FPGA应用设计课设题目:2位十进制计数器实验地点:信息学院楼CPLD实验室专业班级:学号:学生姓名:指导教师:张文爱2016年4月1日实验二2位十进制计数器一、实验目的1.熟悉ispDesignEXPERT System、QuartusII的原理图设计流程的全过程。

2.学习简单时序电路的设计方法。

3.学习EDA设计的仿真和硬件测试方法。

二、实验原理2位十进制计数器参考原理图如图1所示,也可以采用其他元件实现。

图1.用74LS390设计一个有时钟使能的2位十进制计数器三、实验任务(1)设计2位十进制计数器电路。

(2)在EDA环境中输入原理图。

(3)对计数器进行仿真分析、引脚锁定、硬件测试。

四、实验步骤1、设计电路原理图设计含有时钟使能及进位扩展输出的十进制计数器。

可以选用双十进制计数器74LS390或者十进制计数器74LS160和其他一些辅助元件来完成。

2、计数器电路的实现。

绘制过程中应特别注意图形设计规则中信号标号和总线的表达方式。

若将一根细线变成一粗线显示的总线,可以先单机使其变红,再选Option选项中的Line Style;若在某线上加信号标号,也应该点击该线某处使其变成红色,然后键入标号名称,标有相同标号的线段可视为连接线段,不必直接连接。

总线可以以标号方式进行连接。

3、编程测试。

五、实验结果图2.用74LS390设计一个有时钟使能的2位十进制计数器六、实验感想通过本次实验学会了简单时序电路的设计方法。

学会了使用QuartusII软件调用元器件库进行原理图设计的方法和设计流程。

这次实验让我学会了用FPGA设计电路并且学会了FPGA的设计过程和实现方法。

提高了动手能力,加深了对所学知识的理解。

这次EDA实验,提高了动手能力,加深了对所学知识的理解。

电子设计自动化EDA技术实验四报告模板-10进制计数器设计

电子设计自动化EDA技术实验四报告模板-10进制计数器设计

南京工程学院自动化学院实验报告课程名称电子设计自动化EDA技术实验项目名称10进制计数器设计实验学生班级实验学生姓名同组学生姓名实验时间实验地点实验成绩评定指导教师签字年月日其中D 表示输入初始计数值,Sta 为计数开始,Q 表示当前计数值;LD 表示预制计数值,LD 为“0”,初始计数值打入器件;UD 表示计数方向,UD 为‘0’,计数器加计数,UD 为‘1’,计数器减计数;C 表示器件工作态,C 为‘0’,表示计数器正在计数;C 为‘1’,表示计数器计数结束;CP 为计数脉冲。

四、实验方案设计、实验方法 1. 实验方案10进制计数器的VHDL 描述有多种方法,设计过程中可以采用计数脉冲CP 作为敏感量,CP 的每个上升沿,计数值Q 加‘1’或减‘1’,加到‘9’后回‘0’或减到‘0’后回‘9’,语句可采用case …when 、with …select 、if …then 以及加减运算等多种结构实现。

也可以首先设计基本的触发器、锁存器等元件,而后通过元件的互联实现。

本实验中根据真值表用if-then 结构实现10进制计数器 2. 实验方法首先根据前文所述,对照真值表的列出的不同输入逻辑状态,分情况依次输出于输入的对应关系,而后编译综合,由开发系统自行实现电路功能。

五、实验步骤1. 设计输入 利用FILE\New 菜单输入VHDL 源程序,创建源文件D0 D1 D2 D3 CP Sta LD UDQ0 Q1 Q2 Q3 C2. 器件及管脚逻分配图管脚分配情况如图,所选器件为EPM7032AELCC44-43. 仿真波形10进制计数器的仿真波形如下图,从波形可以得出,输入输出满足前文真值表,设计电路功能达到设计要求4. 时序分析图上述时间分析可以得到,输出信号存在3ns的时间延迟,它主要与器件速度、表达逻辑的合理性有关,选用速度更高器件、优化设计可以使该值降低。

100以内的十进制计数器EDA课设

100以内的十进制计数器EDA课设

目录一、摘要二、任务要求三、基本原理四、实现方法五、基本过程六、分析与结论七、课程总结一、摘要电子设计自动化EDA技术课的目的在于培养学生掌握可编程逻辑器件基本的编程方法与开发应用技能。

在掌握了EDA技术的基础知识、基本操作和Quartus II软件的基本应用与一般流程后,学习EDA技术最有效的方法就是进行EDA 技术的综合应用设计。

本次设计阐述了100以内的十进制计数器的设计思路、VHDL 源程序、管脚设置、时序仿真和逻辑综合结果及分析。

十进制计数器由BCD码(二—十进制码)来设计,把一个数拆为个位(低四位)和十位(高四位),首先设定初值然后计数,同时对部分二进制数进行十进制调整。

二、任务要求首先设定100以内的十进制计数初值,而后每来一次脉冲降沿,计数值加1,加到99,然后计数值回0。

三、基本原理十进制计数器由BCD码(二—十进制码)来设计,把一个数拆为个位FD (低四位)和十位SD(高四位)。

设定计数初值高四位H和低四位L,LD为‘1’时置数,否则开始计数。

当个位为9即二进制的1001时且十位非9时,再来一次脉冲(CLK为0)计数时,个位为0即低四位清零,十位加1即高4位加1;十位为9即1001,且个位非9时,个位加1;十位为9且个位也为9时,个位十位全为0即高、低四位都清零。

四、实现方法1.VHDL源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT(CLK,LD:IN STD_LOGIC;H:IN STD_LOGIC_VECTOR(3 DOWNTO 0);L:IN STD_LOGIC_VECTOR(3 DOWNTO 0);FD:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); SD:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)); END ENTITY CNT10;ARCHITECTURE ART OF CNT10 ISBEGINPROCESS(CLK) ISBEGINIF(CLK'EVENT AND CLK='0')THENIF(LD='1')THENSD<=H;FD<=L;ELSIF(LD='0')THENIF(FD="1001")THENIF(SD="1001")THENFD<="0000";SD<="0000";ELSEFD<="0000";SD<=SD+1;END IF;ELSEFD<=FD+1;END IF;END IF;END IF;END PROCESS;END ARCHITECTURE ART;2、生成器件管脚如图1-1所示图1-1五、基本过程1、打开Quartus II 6.0软件,新建工程文件CNT10.qpf,然后新建VHDL 文件CNT10.vhd,输入VHDL 源程序,如图1-2图1-22、编译输入成功的VHDL源程序文件,并调试修改错误,最终使编译成功,如图1-3图1-33、设置管脚,使之在空心圆处设置输入端口CLK、H(3~0)、L(3~0)、LD以及输出端口FD(3~0)、SD(3~0),如图1-4图1-44、查看生成的器件,新建CNT10.bsf文件,找到project里的CNT10,并双击,即可观察到如图1-5所示的器件CLK LDH[3..0] L[3..0]FD[3..0] SD[3..0]CNT10inst图1-55、新建.vwf文件,导入输入、输出端口,并设置输出端口时钟信号CLK的波形以及计数初值(例如00100011即23)然后保存文件,如图1-6图1-66、在图1-6的界面中,编译,得到输出波形如图1-7、1-8所示,并分析数据验证是否符合设计要求。

数电EDA大作业一报告

数电EDA大作业一报告
输入:符号位K,数位I2I1I0输出:符号位Yk,数位Y2Y1Y0
将3个CP1串行级联,并将第一个的进位输入端接符号位。
实现功能:求补码
5.简易3-1选择器(3_1selector):
输入:选择端S2S1S0,数位I2I1I0输出:Y
约束条件:
实现功能:选通一个输入端。
6.简易2-4译码器(2_4decoder):
实现功能:通过拨码开关或者接入两列方波序列让加数和结果分别显示在数码管上。
二、设计思路
1.注意到两个带符号位的四位二进制数时,需要先把二进制数的补数相加再取补数,所以做三个补码器和一个全加器组合,进而完成运算器。
2.对于带符号位的三位二进制数,可以扩展成四位,即把M, N扩展成A3A2A1A0形式,其中,A3为符号位,A2补0,A1A0与原M、N的最后两位相同。
2.全加器和运算器的设计基本没有遇到设计上的问题,因为电子技术实验三组合电路有设计过类似电路。
3.设计分频器时,遇到的问题是在quartus ii中不能直接添加时钟,最后查看FPGA使用说明才知道用晶振产生时钟信号。
4.分频器接入电路后出现错位重影的问题,分析是竞争冒险的问题,所以继续分频,直到能准确显示为止(31.25Hz)。
8.同步十进制加法器(SDAC):
实现功能:产生占空比为1/10的方波。
9.降200k分频器(FD200k):
用5个SDAC串联,最后接上一个T触发器,并使T为1或T与CLK相接。
实现功能:将频率降低200k,如将50MHz降为250Hz。
10.扫描显示电路(show):
用2-4译码器、3-1选择器、运算器、7447译码器等组合成扫描显示电路。
A模块:
分别输出31.25Hz和5Hz的时钟信号。

EDA计数器实验

EDA计数器实验

计数器一、实验目的1、设计一个带使能输入、进位输出及同步清0的增1十进制计数器2、设计一个带计数使能、同步清0、同步加载的4位计数器3、设计一个带使能、同步清0控制和进位输出的增14位二进制计数器,计数结果由一位7段码管显示。

4、设计一个带使能和同步清0控制的增1减18位二进制计数器,计数结果由7段数码管显示。

二、实验内容1、带使能、同步清0控制和进位输出的增14位二进制计数器VHDL源代码library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity counter2 isPort ( clk : in STD_LOGIC;clr : in STD_LOGIC;en : in STD_LOGIC;co : out STD_LOGIC;y : out STD_LOGIC_VECTOR (6 downto 0));end counter2;architecture Behavioral of counter2 issignal cnt:STD_LOGIC_VECTOR(3 downto 0);signal led:STD_LOGIC_VECTOR(6 downto 0);beginprocess(clk)beginif(clk'event and clk='1')thenif clr='1' thencnt<=(others=>'0');elsif en='1' thenif cnt="1111" thencnt<="0000";elsecnt<=cnt+'1';end if;end if;end if;end process;co<='1' when cnt="1111" else '0';y<=not led;with cnt selectled<="1111001"when"0001","0100100"when"0010","0110000"when"0011","0011001"when"0100","0010010"when"0101","0000010"when"0110","1111000"when"0111","0000000"when"1000","0010000"when"1001","0001000"when"1010","0000011"when"1011","1000110"when"1100","0100001"when"1101","0000110"when"1110","0001110"when"1111","1000000"when others;end Behavioral;激励文件源代码LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.all;USE ieee.numeric_std.ALL;ENTITY counter_2_tbw_vhd ISEND counter_2_tbw_vhd;ARCHITECTURE behavior OF counter_2_tbw_vhd IS-- Component Declaration for the Unit Under Test (UUT) COMPONENT counter2PORT(clk : IN std_logic;clr : IN std_logic;en : IN std_logic;co : OUT std_logic;y : OUT std_logic_vector(6 downto 0));END COMPONENT;--InputsSIGNAL clk : std_logic := '0';SIGNAL clr : std_logic := '0';SIGNAL en : std_logic := '0';--OutputsSIGNAL co : std_logic;SIGNAL y : std_logic_vector(6 downto 0);BEGIN-- Instantiate the Unit Under Test (UUT)uut: counter2 PORT MAP(clk => clk,clr => clr,en => en,co => co,y => y);clk<=not clk after 20 ns;tb : PROCESSBEGINclr<='1','0' after 30 ns;en<='0','1' after 20 ns;-- Wait 100 ns for global reset to finish--wait for 100 ns;-- Place stimulus herewait; -- will wait foreverEND PROCESS;END;功能仿真时序仿真管脚设置NET "clk" LOC = "E10" ;NET "clr" LOC = "L13" ;NET "co" LOC = "F12" ;NET "en" LOC = "L14" ;NET "y<0>" LOC = "B4" ;NET "y<1>" LOC = "A4" ;NET "y<2>" LOC = "D5" ;NET "y<3>" LOC = "C5" ;NET "y<4>" LOC = "A6" ;NET "y<5>" LOC = "B6" ;NET "y<6>" LOC = "E7" ;实验现象七段数码管显示0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F,每次循环完成co所接led灯亮一下,表示进位。

加法计数器实验EDA

加法计数器实验EDA

实验四加法计数器的设计一、实验目的熟悉利用QuartusII的VHDL文本输入方法设计简单时序电路,掌握异步、同步电路的设计的方法,并通过一个十进制加法计数器的设计,掌握边沿触发(或电平触发)的描述方法等。

二、实验要求和内容1、根据【例5-15】(课本132页),将其修改成一个异步清0,同步时钟使能,同步数据加载的十进制加法计数器:包括VHDL程序输入、编译、综合、适配、仿真。

(1)为此工程新建一个文件夹。

启动QuartusII软件工作平台,新建工程设计文件名为CNT10.vhd。

在新建的VHDL模型窗口下编写源程序代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT (CLK,EN,RST,LOAD: IN STD_LOGIC;DATA : IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT : OUT STD_LOGIC );END CNT10;ARCHITECTURE behav OF CNT10 ISBEGINPROCESS(CLK,RST,EN,LOAD)VARIABLE Q:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF RST='0' THEN Q:=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF EN='1' THENIF (LOAD='0') THEN Q:=DATA;ELSE IF Q<9 THEN Q:=Q+1;ELSE Q:=(others=>'0');END IF;END IF;END IF;END IF;IF Q="1001" THEN COUT<='1';ELSE COUT<='0'; END IF; DOUT<=Q;END PROCESS;END behav;(2)创建工程及全程编译。

eda实验报告1

eda实验报告1

EDA实验报告1——异步复位同步加载十进制加法计数器一、实验目的(1)、进一步熟悉和掌握Quartus II软件的各模块功能和使用方法;(2)、加深对VHDL语言的了解,熟悉VHDL 语言的语法特点,深刻了解Quartus II仿真中出现的各种问题并能加以解决。

二、实验要求(1)、采用文本输入法设计异步复位同步加载十进制加法计数器。

(2)、编写VHDL源程序,得出正确的仿真波形,并在实验开发系统上进行硬件测试。

三、实验原理异步复位是指复位信号有效时,直接将计数器的状态清零。

在本设计中,通过VHDL来设计一个异步复位同步加载十进制加法计数器。

异步复位同步加载十进制加法计数器有5个输入CLK,RST,EN,LOAD,DATA,2个输出DOUT,COUT。

当时钟信号CLK、复位信号RST、时钟使能信号EN或加载信号LOAD 中的任一位信号发生变化,都将启动进程语句PROCESS。

此时如果RST为‘1’,则看是否有时钟的上升沿;如果此时有CLK信号,且又测得EN=‘1’,接下来就是判断加载控制信号LOAD的电平。

如果LOAD为低电平,则允许将输入口的4位加载数据置入计数寄存器中,以便计数器在此数基础上累加计数。

如果LOAD为高电平,则允许计数器计数;此时若满足计数值小于9,即Q<9计数器将正常计数,即执行语句“Q:=Q+1;”否则将计数器清零。

但如果测得EN=’0’,则跳出IF语句,是Q保持原值,并将计数器向端口输出:“DOUT<=Q;”。

四、实验步骤1、新建一个文件夹ch3.20。

2、输入源程序。

打开Quartus II,做以下步骤,如下:图1—选择文本编辑编辑程序并存盘,存盘文件与实体名一致:图2—存盘好的源程序3、编译,红色光标所指即为Compilation命令:图3—选择编译器编译之后生成的报告:图4—编译成功后的报告4、生成RTL寄存器:选中Tools:图5—选择Tools接着鼠标指向Netlist viewer的第一项RTL viewer。

基于EDA的三位十进制计数器

基于EDA的三位十进制计数器

三位十进制计数器一、设计目的采用文本输入法设计三位十进制加法计数器。

编写VHDL源代码,得出正确的仿真波形,并在实验开发系统上进行硬件演示。

二、设计内容设计一个三位10进制计数器,对计数器相关的理论进行分析、归纳和总结;三位10进制计数器的结构组成及原理分析。

程序代码(含注释);给出程序中主要函数或者语句的功能说明和使用说明;给出程序仿真运行结果和图表、以及实验结果分析和总结。

三、计数器设计原理计数器的输入信号是计数信号(CLK),门控信号是手动清零信号(RESET)、手动允许计数(ENA)。

清零信号Rest为1时,保持在清零状态,计数脉冲上升沿无效;允许计数端为0时,为保持状态,这时保持至最后一个计数,计数脉冲上升沿无效;清零信号为0,允许计数信号为1时,计数器上升沿脉冲计数。

计数器是在数字系统中使用最多的时序电路,它不仅能用于对时钟脉冲计数,还可以用于分频,定时,产生节拍脉冲和脉冲序列以及进行数字运算等。

计数器是一个典型的时序电路,分析计数器就能更好地了解时序电路的特性。

三位十进制计数显示器的设计分三步完成。

先设计十进制计数电路,再设计显示译码电路,最后建立一个顶层文件将两者连接起来。

四、设计程序代码1)三位十进制计数程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COU10 ISPORT(CLK,RESET,CIN :IN STD_LOGIC;CO :OUT STD_LOGIC;BCDAP :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);BCDBP :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);BCDCP :OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COU3;ARCHITECTURE BEHAVE OF COU3 ISSIGNAL BCDAN:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL BCDBN:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL BCDCN:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINBCDAP<=BCDAN;BCDBP<=BCDBN;BCDCP<=BCDCN;KK1:PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THENIF(RESET='0')THENBCDAN<="0000";ELSIF(CIN='1')THENIF(BCDAN="1001")THENBCDAN<="0000";ELSEBCDAN<=BCDAN+'1';END IF;END IF;END IF;END PROCESS KK1;KK2:PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THENIF(RESET='0')THENBCDBN<="0000";ELSIF(CIN='1') AND (BCDAN="1001")THENIF(BCDBN="1001")THENBCDBN<="0000";ELSEBCDBN<=BCDBN+'1';END IF;END IF;END IF;END PROCESS KK2;KK3:PROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THENIF(RESET='0')THENBCDCN<="0000";ELSIF(CIN='1') AND (BCDBN="1001") AND (BCDAN="1001")THENIF(BCDCN="1001")THENBCDCN<="0000";ELSEBCDCN<=BCDCN+'1';END IF;END IF;END IF;END PROCESS KK3;END BEHAVE;2)显示译码器程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY YIMAQI ISPORT(II:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Y :OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END SEG7;ARCHITECTURE BEHAVE OF SEG7 ISSIGNAL INDATA:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGININDATA<=II;PROCESS(INDATA)BEGINCASE INDATA ISWHEN"0000"=> Y<="0000001";WHEN"0001"=> Y<="1001111";WHEN"0010"=> Y<="0010010";WHEN"0011"=> Y<="0000110";WHEN"0100"=> Y<="1001100";WHEN"0101"=> Y<="0100100";WHEN"0110"=> Y<="0100000";WHEN"0111"=> Y<="0001111";WHEN"1000"=> Y<="0000000";WHEN"1001"=> Y<="0000100";WHEN"1010"=> Y<="0001000";WHEN"1011"=> Y<="1100000";WHEN"1100"=> Y<="0110001";WHEN"1101"=> Y<="1000010";WHEN"1110"=> Y<="0110000";WHEN"1111"=> Y<="0111000";WHEN OTHERS=>Y<="XXXXXXX";END CASE;END PROCESS;END BEHAVE;3)顶层文件:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DINGCEN ISPORT(CLK,RESET,ENA:IN STD_LOGIC;SEG1: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEG2: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);SEG3: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END COU37SEG;ARCHITECTURE X37 OF COU37SEG ISCOMPONENT SEG7PORT(II:IN STD_LOGIC_VECTOR(3 DOWNTO 0);Y :OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END COMPONENT;COMPONENT COU3PORT(CLK,RESET,CIN:IN STD_LOGIC;BCDAP: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);BCDBP: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);BCDCP: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END COMPONENT;SIGNAL A,B,C:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINU0:COU3 PORT MAP(CLK,RESET,ENA,A,B,C);U1:SEG7 PORT MAP(A,SEG1);U2:SEG7 PORT MAP(B,SEG2);U3:SEG7 PORT MAP(C,SEG3);END X37;五、程序设计步骤1)打开ispEXPERT软件,建立一个新的工程cnt10;1 单击菜单File→New Project2 输入工程路径,工程名2)建立VHDL文件单击File→New菜单项,选择VHDL File选项,单击OK按钮以建立VHDL文件,分别建立十进制计数程序的vhd文件COU10.vhd,显示译码器vhd文件YIMAQI.vhd和顶层文件DINGNGCEN.vhd3)然后设定管脚4)最后保存编译运行,生成可下载到板子里面的jed文件5)器件下载6)波形仿真结果六、设计结果与分析三位十进制加法计数器实现了从000到999的计数,当计数到999时,计数器的输出置0,下一次又从0到999计数。

eda实验报告十进制计数器设计流程

eda实验报告十进制计数器设计流程

eda实验报告十进制计数器设计流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。

文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor.I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!EDA实验报告:十进制计数器设计流程详解一、实验背景与目的在电子设计自动化(EDA)领域,计数器是一种常见的数字逻辑电路,用于实现数字系统的计数功能。

EDA实验报告:十进制计数器

EDA实验报告:十进制计数器
7
Select SEG7 O/P Q : buffer STD_LOGIC_VECTOR( 3 DOWNTO 0); --
3
重庆三峡学院实验报告纸
Number Display Signal M : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
); END jishuqi; ARCHITECTURE a OF jishuqi IS
A. 时钟信号(CLK)为上升沿时,计数一次; B. 十进制数计数 0~9,满 9 进 1; 2.D 触发器是 CMOS 数字集成电路单元中时序逻辑电路中的重要组成部 分之一;D 触发器属于时钟控制触发,时钟信号为高电平时触发器改变 输出状态。 3.当时钟信号(CLK)为高电平,且 CLR 也为高电平时,计数清 0,CLR 是高电平清 0 还是低电平清 0 是由程序指定; 4.当使能信号 EN 为低电平的时候,保持;EN 是高电平还是低电平保持 是由程序指定;
重庆三峡学院实验报告纸当时钟信号clk为高电平且clr也为高电平时计数清0并重新开始计数
实验报告
课程名称
EDA 原理及应用
实验名称
十进制计数器
实验类型 验证 系别 年级班别 级 班 学生姓名 实验教师 编号
学时 专业 开出学期 学号 成绩
2 第期
年月 日
一、实验目的
重庆三峡学院实验报告纸
1. 熟悉数码管的工作原理;
6
重庆三峡学院实验报告纸
2. 将未分配的管脚置为三态输入: 【Assignments】→【Device…】 →【Device】 →【Device & Pin
Options…】 →【Unused Pins】 →【Reserve all unused pins : AS input tri-stated】。 四、实验总结 1.通过本次实验了解十进制同步加载、异步复位计数器的工作原理:

十进制计数器的EDA设计

十进制计数器的EDA设计

EDA实验报告学院:软件学院姓名:邵旭东学号:20107611441班级:物联网14 班指导老师:陈德新十进制计数器的EDA设计一、实验目的1.掌握十进制计数器的基本原理及设计方法。

2.掌握七段译码器电路的设计方法。

3. 掌握Maxpuls软件的应用。

二、实验原理实验原理图如下图1实验电路结构如图1所示。

主要由消抖电路、BCD码计数器和七段译码器构成,各部分电路介绍如下:本实验采用的BCD码计数电路由74160构成,74160 是十进制同步计数器(异步清除),在其功能表中,当LDN、ENT、ENP、CLRN四个输入端都接高电平时,对CLK输入脉冲上升沿进行计数,由QA-QD输出8421码。

具体电路如图3所示。

本实验采用的七段译码器电路由7447和外部共阴极数码管构成,7447七段译码器将BCD8421码译成数码管所需的七段数显码,真值表如表1所示。

具体电路如图3所示。

图3 开关防颤动电路开关防颤动电路图2 开关防颤动电路图3 BCD计数器和七段译码器三、实验内容与步骤1.打开PC机界面MAX+plusⅡ软件,输入图4的电路图。

2.选菜单File\Project\Set Project to Current File,然后选菜单MAX+plusⅡ\complier编辑当前图形文件。

图4 10进制脉冲计数器3.用Byte Blaster下载缆线联结PC机并口和实验箱J1(JTAG),打开实验箱电源开关。

选择菜单项MAX+plus II\Programmer,单击Program按钮,即开始下载程序。

4.关闭电源开关,取下下载缆线,参考电路原理图编号一CLK.SCH、编号五CPLD1.SCH,SW11、SW51的短路帽接入1、2脚,CLK-J11的短路帽选择0.2K位置,CLK-J13的第三个拨码开关置ON状态。

5.打开实验箱电源开关,连续按K52键,观察数码管LED1的变化。

6.完成上述实验后,分别把时钟信号单元中SW11、SW51的短路帽接入2、3脚,CLK-J13的第三个拨码开关置OFF状态,关闭电源开关。

eda10进制计数器实验报告

eda10进制计数器实验报告

竭诚为您提供优质文档/双击可除eda10进制计数器实验报告篇一:eda作业答案简述用QuartusⅡ开发数字系统的过程1逻辑设计。

首先要使用数字电路的基本设计方法设计数字系统,组合逻辑用组合逻辑的设计方法,时序逻辑用时序逻辑的设计方法。

设计完成后,使用硬件描述语言(Verilog或VhDL)输入QuartusII进行综合。

2.仿真验证阶段。

编译无误后,使用调试工具(QuartusII自带的向量波形文件或modelsim)对综合生成的结果进行仿真。

首先进行功能仿真(Functionalsimulation)以验证逻辑是否正确。

功能仿真无误后,进行时序仿真(Timingsimulation)验证电路功能是否正常。

3.下载调试阶段。

时序仿真结果无误后,将生成的电路下载进入对应的FpgA或cpLD芯片中,进行管脚分配,所有工作完成后进行调试,若调试有误,则查找原因返回步骤1或步骤2修改设计;若调试无误则数字系统设计完成FpgA与cpLD在硬件结构上的区别?FpgA与cpLD的区别系统的比较,与大家共享:尽管FpgA和cpLD都是可编程AsIc器件,有很多共同特点,但由于cpLD和FpgA结构上的差异,具有各自的特点:①cpLD更适合完成各种算法和组合逻辑,FpgA更适合于完成时序逻辑。

换句话说,FpgA更适合于触发器丰富的结构,而cpLD更适合于触发器有限而乘积项丰富的结构。

②cpLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FpgA的分段式布线结构决定了其延迟的不可预测性。

③在编程上FpgA比cpLD具有更大的灵活性。

cpLD通过修改具有固定内连电路的逻辑功能来编程,FpgA主要通过改变内部连线的布线来编程;FpgA可在逻辑门下编程,而cpLD是在逻辑块下编程。

④FpgA的集成度比cpLD高,具有更复杂的布线结构和逻辑实现。

⑤cpLD比FpgA使用起来更方便。

cpLD的编程采用e2pRom或FAsTFLAsh技术,无需外部存储器芯片,使用简单。

eda10进制计数器实验报告

eda10进制计数器实验报告

eda10进制计数器实验报告1B计算机组成原理教学实验箱一台,排线若干。

2) PC机一台。

3、实验步骤与源程序l) 根据该模型机的指令系统,编写一段程序。

这里给出两个参考程序。

参考程序一:本程序从输入设备(数码开关)取入数据,保存在内存单元08,然后从08单元送到输出设备(LED数码管)进行显示。

然后程序停止(请实验者考虑:如何修改程序,使程序不断从输入设备取出数据,送到输出设备显示。

每次循环过程中,可以使输入设备数据改变,考察输出显示的结果。

)。

设计机器指令程序如下(机器码为十六进制数据)。

地址内容助记符说明00 00 IN;输入开关数据→R00120 STA [08H] ;R0→[08]02 08 ;地址03 30 OUT [08H] ;[08H] →BUS04 08 ;地址05 40 JMP [00H] ;00H→PC06 00 ;跳转地址参考程序二:本程序从输入设备(数码开关)读入数据,与0A单元的数据相加,然后送到输出设备(LED数码管)进行显示。

本程序不断地循环运行,在运行中可改变输入开关(INPUT)的值,观察输出显示的变化。

设计机器指令程序如下(机器码为十六进制数据)。

地址内容助记符说明00 00 IN;输入开关数据→R0,采集数据0110 ADD [0AH] ;R0+[0AH]→R0,输入数据与指定数据相加02 0A ;地址0320 STA [0BH] ;R0→[0B]04 0B ;地址05 30 OUT [0BH] ;[0BH] →BUS,输出显示06 0B ;地址07 40 JMP [00H] ;00H→PC08 00 ;跳转地址0A 01 ;加数,可自定0B ;求和结果保存在0B单元2) 按图1连接实验线路。

3) 写程序:对于本实验箱可以用两种方法来写入程序。

方法一:手动写入(1)先将机器指令对应的微代码正确地写入2816中,由于在实验1.6微程序控制器的组成与微程序设计实验中已将微代码写入E2PR0M芯片中,对照表2—2校验正确后就可使用。

EDA课程设计---十进制加法计数器

EDA课程设计---十进制加法计数器

课程设计说明书题目:十进制加法计数器学院(系):电气工程学院年级专业:学号:学生姓名:**课程设计(论文)任务书院(系):电气工程学院基层教学单位:电子实验中心说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。

年月日目录第1章摘要 (4)第2章十进制加法器设计说明 (5)2.1 设计思路 (5)2.2 流程图 (5)2.3 模块介绍 (6)2.4 真值表 (6)第3章原理图分析 (11)3.1 整体原理图 (11)3.2 输入转换部分设计 (12)3.3 蜂鸣器部分 (12)3.4 加法器部分 (13)3.5 B-BCD(二进制转换为BCD码) (13)3.6 动态数码管部分 (14)第4章波形仿真图及结果分析 (16)第5章管脚锁定及硬件连线 (21)第6章总结 (22)参考文献 (23)**评审意见表 (24)摘要十进制加法器可由BCD码(二-十进制码)来设计,它可以在二进制加法器的基础上加上适当的“校正”逻辑来实现,该校正逻辑可将二进制的“和”改变成所要求的十进制格式。

n位BCD码行波式进位加法器由n级组成,每一级将一对4位的BCD数字相加,并通过一位进位线与其相邻级连接。

在十进制运算时,当相加二数之和大于9时,便产生进位。

用BCD码完成十进制数运算时,当和数大于9时,必须对和数进行加6修正,由加法器和比较器完成功能的实现。

加法器的加数和被加数若大9则蜂鸣器警报5秒,数码管显示为0,由比较器和计数器控制。

动态数码管由计数器、数据选择器、译码器完成显示功能。

关键词:十进制加法器、动态数码管显示、蜂鸣器警报第二章十进制加法器设计说明2.1 设计思路根据项目要求设计的十进制加法器有两个输入,及加数和被加数,分别是用四个拨码开关表示的四位二进制数,即输入的范围为0到15;有一个输出,即两个加数相加的结果。

加数、被加数和结果都需要显示在动态数码管上,并且,加数或被加数若大于9,则蜂鸣器报警5秒钟,且显示为0.根据要求,设计加数和被加数的合法范围为0到9,故当输入的加数大于9的时候需要将其统一变换成0。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

百度文库- 让每个人平等地提升自我EDA技术实践报告
十进制加法计数器
姓名:王浩
学号: 9
专业:电气自动化
班级: 12级自动化二班日期:
目录
第1章前言 (1)
摘要 (1)
第2章设计说明 (2)
设计思路 (2)
模块介绍 (2)
真值表 (3)
第3章原理图 (5)
第4章波形仿真图 (10)
第5章管脚锁定及连线 (11)
第6章总结 (13)
第一章前言
本次课程设计介绍了一种基于数字电子技术的十进制加法器实现了如下功能:
1.用四个数码管显示加数与被加数和结果
2.设置加数和被加数。

当加数和被加数超过9时显示“E”,计算结果显示为“EE”
3.分别用四个拨码开关控制加数与被加数
4.当加数、被加数超过9时,蜂鸣器报警5秒
EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为实验工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化建、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。

利用EDA技术进行电子系统的设计,具有以下几个特点:1.用软件的方式设计硬件;2.用软件方式设计的系统到硬件系统的转换是由有关的开发软件自当完成的;3.设计过程中可用有关软件进行仿真;4.系统可现场编程,在线升级;5.整个系统可集成在一个芯片上,体积小,功能低,可靠性高。

因此,EDA技术是现代电子设计的发展趋势。

摘要
此次设计是十进制加法器,用74238进行加法部分,根据BCD码加法运算规则,当俩数相加的结果小于或等于9时,相加结果与二进制数相加结果一致,当相加结果大于9时,相当于按二进制数相加所得的结果再加6.
当加数或被加数超过九时,数码管显示E,结果显示EE。

蜂鸣器报警5秒钟。

关键字:十进制加法器,数码管显示,蜂鸣器报警
第二章设计说明
设计思路
分别用4个拨码开关设置被加数和加数,加数与被加数输入后分别用比较器与9进行比较。

当加数、被加数小于等于9时,比较器输出低电平,输入有效,当加数、被加数大于9时,比较器输出高电平,该输入数无效,置为“E”,此时蜂鸣器报警。

使用D触发器与计时器定时5秒钟。

使用全加器进行加数与被加数的和,结果用数码管显示。

相加结果经过进位及译码处理后用两个数码管显示结果。

数码管采用静态显示方式,前两位分别显示被加数、加数,后两位显示相加结果。

模块介绍
1.输入模块:每四个拨码开关控制加数和被加数,一共八个开关。

设置范围0~15。

输入的加数和被加数分别使用7485与9进行比较。

比较后将送到加法模块和数码管中进行运算。

若加数或被加数大于9时,AGBO将输出高电平,通过非门,与门和或门输出1110B,七段数码管显示E。

并且给蜂鸣模块输送高电位,蜂鸣器报警5秒钟,数码管的结果显示EE。

当输入的加数或被加数小于9时,就输出原数。

2.加法模块:把输入的加数与被加数用全加器74283相加,当俩数的相加结果小于9时,相加的结果与二进制相加结果一样;相加的结果大于9时,相当于按二进制数相加所得的结果再加6.因此,首先要把俩个加数被加数做加法运算,运算的结果经过判断决定是否加6。

把输出的结果用7485与9相比较,小于等于9直接输出,大于九是再做加6运算,因此还需要一个加法器74238,完成加6的运算输出的结果作为结果的个位。

把两个加法器的进位相或所以无论哪一位进位结果的十位都会输出1。

3.蜂鸣模块:触发方式为边沿触发的D触发,再加上一个同步十进制加法计数器74160构成5进制计数器。

Q端接741610的ENP、ENT端和蜂鸣器。

当D触发器的CLK端接收到一个上升沿后,Q端由0变为1,蜂鸣器开始报警,74160开始计数(时钟频率为1HZ),计数到5(0101)时,给D触发器和74160清零信号,D触发器被清零,Q端变为0,此时虽然CLK保持1,但是上升沿已经过了,故Q端状态不再改变,仍然保持0,
一直等待下次的上升沿,即完成了蜂鸣器报警5s。

真值表
7485真值表
74283真值表
74160真值表
D触发器真值表
第三章原理图总原理图
输入模块原理图
加法原理图
蜂鸣模块原理图
第四章波形及仿真
彷真的分别是3+2,8+1,2+15,15+15 当加数或被加数超过9时,蜂鸣器在上升沿处触发,发出警报。

第五章管教锁定及连线
端口编号锁定管脚a1 39
a2 40
a3 41
a4 44
b1 45
b2 46
b3 47
b4 53
ya1 143
ya2 144
ya3 147
ya4 148
yb1 139
yb2 140
yb3 141
yb4 142
d1 127
d2 128
d3 131
d4 132
e1 133
e2 134
e3 135
e4 136
CLK1 172
SPEAKER 38
第六章总结
本次EDA课程设计对于PC机上的操作要求较高,在设计初期PC上的软件操作成了设计的最大难题,从另一方面看也极大地锻炼了我的专业软件使用能力。

从设计本身来说内容不是特别难,但是细节方面却成了前期工作难以快速进行的诟病,多谢老师和同学的指导顺利过渡到仿真线路上来,工作进行至此便顺畅许多。

从本次实践看到了自己在专业软件上的不足,这需要长期不断地锻炼来磨就,平时锻炼过少的弊端从这次实践体现出来。

希望在以后的学习中多多练习,熟能生巧,练就一手过硬的软件技术。

相关文档
最新文档