EDA课程设计报告

时间:2024.4.14

《EDA》课程设计

题目   四位加法器设计                     

学号   200906024231                         

姓名   xxx                     

班级   机自094                     

指导老师  xxx         

2011 年 12 月 30 日

目录

摘要...........................................2

EDA简介........................................2

一、   概述

1.1设计目的…………..........................3

2.2设计任务…………............................3

二、4位加法器设计实现过程

    1、半加器设计...............................4

    2 、全加器设计..............................8

    3 、4位加法器设计...........................9

.各模块符号图、仿真图..........................11

四、实验结果与分析..............................13

五、心得体会....................................14

六,参考文献.....................................15

摘要

    本文主要介绍了关于EDA技术的基本概念及应用,EDA设计使用的软件QuartusⅡ的基本操作及使用方法,以及半加器、1位全加器和四位全加器的设计及仿真过程。

 EDA简介

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作.EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。 EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的电子设计方法。

现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA 技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。EDA 设计可分为系统级、电路级和物理实现级。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。现在对EDA的概念或范畴用得很广。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用[1]。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本次毕业设计课题实现的核心技术即为EDA相关技术。

、概述

1.1设计目的

本课程设计的目的,旨在通过上机实验,使我们加深理解EDA技术的基本方法,帮助和培养我们建立利用原理图进行电路设计的基本方法和利用EDA工具软件(QuartusⅡ)设计简单数字电子系统的能力。通过该课程设计,使得我们掌握原理图输入法及层次化设计的操作步骤,掌握设计电路原理图的编辑、编译、仿真等操作方法,为我们以后从事有关数字电子系统方面的设计和研究开发工作打下基础。

2.2设计任务

以ⅡQuartusⅡ为工具软件,采用原理图输入法设计一个4位的加法器,该四位加法器由以下三个步骤完成:(1)采用原理图输入法设计半加器h_adder,生成元件符号,并仿真验证设计结果;(2)采用层次化原理图输入法设计1位全加器adder,生成元件符号,并仿真验证设计结果;(3)在1位全加器的基础上,设计4位加法器

二、4位加法器设计实现过程

1. 半加器的设计

(1)元件选择

在工具软件的元件库中已经有与门、或门、与非门和异或门等元件,在设计中可直接调用这些元件,实现电路设计。

 半加器原理图

    在元件选择对话框的符号库“Symbol Libraries”栏目中,用鼠标双击基本元件库文件夹“d:\maxplus2\max2lib\prim”后,在符号文件“Symbol Files”栏目中列出了该库的基本元件的元件名,例如and2(二输入端的与门)、xor(异或门)、VCC(电源)、input(输入)和output(输出)等。在元件选择对话框的符号名“Symbol Name”栏目内直接输入xor,或者在“Symbol Files”栏目中,用鼠标双击“xor”元件名,即可得到异或门的元件符号。用上述同样的方法也可以得到其他元件符号。

(2)编辑半加器的原理图

半加器逻辑电路图如图1所示,它由1个异或门和1个与门构成,a、b是输入端,SO是和输出端,CO是向高位的进位输出端。

    在元件选择对话框的符号名“Symbol Name”栏目内直接输入xor,或者在“Symbol Files”栏目中,用鼠标双击“xor”元件名,即可得到异或门的元件符号。用上述同样的方法也可以得到与门及输入端和输出端的元件符号。用鼠标双击输入或输出元件中原来的名称,使其变黑后就可以进行名称修改,用这种方法把两个输入端的名称分别更改为“a”和“b”,把两个输出端的名称分别更改为“SO”和“CO”,然后按照图1所示的半加器逻辑电路的连接方式,用鼠标将相应的输入端和输出端及电路内部连线连接好,并以“h_adder.gdf”(注意后缀是.gdf)为文件名,存在自己建立的工程目录d:\myeda\mygdf内。进行存盘操作时,系统在弹出的存盘操作对话框中,自动保留了上一次存盘时的文件名和文件目录,不要随意单击“OK”按钮结束存盘,一定要填入正确的文件名并选择正确的工程目录后,才能单击“OK”按钮存盘,这是上机实验时最容易忽略和出错的地方。   

(3)编译设计图形文件

    设计好的图形文件一定要通过编译。在MAX+plus II集成环境下,执行“MAX+plus”菜单下的“Compiler”命令,在弹出的编译对话框中单击“Start”按钮,即可对h_adder.gdf文件进行编译。

在编译中,软件自动完成编译网表提取(Compiler Netlist Extractor)、数据库建立(Database Builder)、逻辑综合(Logic Synthesizer)、逻辑分割(Partitioner)、适配(Fitter)、延时网表提取(Timing SNF Extractor)和编程文件汇编(Assembler)等操作,并检查设计文件是否正确。存在错误的设计文件是不能将编译过程进行到底的,此时计算机会中断编译,并在编译(Compiler)对话框中指出错误类型和个数。

(4)生成元件符号

    在软件集成环境下,执行“File”菜单下的“Create Default Symbol”命令,将通过编译的GDF文件生成一个元件符号,并保存在工程目录中。这个元件符号可以被其他图形设计文件调用,实现多层次的系统电路设计。

(5)功能仿真设计文件

    仿真,也称为模拟(Simulation);是对电路设计的一种间接的检测方法。对电路设计的逻辑行为和功能进行模拟检测,可以获得许多设计错误及改进方面的信息。对于大型系统的设计,能进行可靠、快速、全面的仿真尤为重要。

    ① 建立波形文件

    进行仿真时需要先建立仿真文件。在Max+p1us II环境执行“File”的“New”命令,再选择弹出的对话框中的Waveform Editor fi1e项,波形编辑窗口即被打开。

    ② 输入信号节点

    在波形编辑方式下,执行“Node”的“Nodes from SNF”命令,弹出输入节点“Enter Nodes from SNF”对话框,在对话框中首先单击“List”按钮,这时在对话框左边的“Available Nodes&Groups” (可利用的节点与组)框中将列出该设计项目的全部信号节点。若在仿真中只需要观察部分信号的波形,则首先用鼠标将选中的信号名点黑,然后单击对话框中间的“=>”按钮,选中的信号即进入到对话框右边的“Selected Nodes&Groups”(被选择的节点与组)框中。如果需要删除“被选择的节点与组”框中的节点信号,也可以用鼠标将其名称点黑,然后单击对话框中间的“<="按钮。节点信号选择完毕后,单击“OK”按钮即可。

    ③ 设置波形参量

    在波形编辑对话框中调入了半加器的所有节点信号后,还需要为半加器输入信号a和b设定必要的测试电平等相关的仿真参数。如果希望能够任意设置输入电平位置或设置输入时钟信号的周期,可以在Options选项中,取消网格对齐Snap to Grid的选择(取消钩)。

    ④ 设定仿真时间宽度

    在仿真对话框,默认的仿真时间域是1μS。如果希望有足够长的时间观察仿真结果,可以选择“File”命令菜单中的“End Time”选项,在弹出的“End Time”对证框中,填入适当的仿真时间域(如5μS)即可。

    ⑤ 加入输入信号

为输入信号a和b设定测试电平的方法及相关操作如教材图2.31所示,利用必要的功能键为a和b加上适当的电平,以便仿真后能测试so和co输出信号。

⑥ 波形文件存盘

以“h_adder.scf”(注意后缀是.scf)为文件名,存在自己建立的工程目录d:\myeda\mygdf内。在波形文件存盘时,系统将本设计电路的波形文件名自动设置为“h_adder.scf”,因此可以直接单击确定按钮。

⑦ 进行仿真

波形文件存盘后,执行“Max+p1us II”选项中的仿真器“Simulator”命令,单击弹出的“仿真开始”对话框中的“Start”按钮,即可完成对半加器设计电路的仿真,可通过观察仿真波形进行设计电路的功能验证。

2.  1位全加器的设计

(1)编辑1位全加器的原理图

1位全加器可以用两个半加器及一个或门连接而成。其原理图如图2所示。

在Quartus7.2图形编辑方式下,在用户目录中找到自己设计的半加器元件h_adder,并把它调入原理图编辑框中(调入两个),另外从d:\maxplus2\max2lib\prim元件库中调出一个两输入端的或门,并加入相应的输入和输出元件,按照图2所示电路连线,得到1位全加器电路的设计结果。电路中的a和b是两个1位二进制加数输入,cin是低位来的进位输入,sum是和输出,cout是向高位进位输出。

(2)设计文件存盘与编译

完成1位全加器电路原理图的编辑后,以adder.gdf为文件名将1位全加器电路原理图设计文件保存在工程目录中,“.gdf”表示图形文件。进行存盘操作时,系统在弹出的存盘操作对话框中,自动保留了上一次存盘时的文件名和文件目录,操作者不要随意单击“OK”按钮结束存盘,一定要填入正确的文件名并选择正确的工程目录后,才能单击“OK”按钮存盘,这是初学者上机实验时最容易忽略和出错的地方。

  1位全加器原理图

全加器的原理图文件包括两个层次的设计。半加器h_adder.gdf是底层设计文件,全加器adder.gdf是顶层设计文件。在编译顶层文件之前要设置此文件为顶层文件,操作方法是先打开adder.gdf,执行“file”菜单下“project”的“set project to current file”命令即可。

    完成图形文件编辑并存盘后,执行MAX+plus II的“Compiler”命令对设计文件进行编译,检查设计文件中的错误。如果设计文件不存在错误,则可以开始进一步对设计文件进行网表文件提取、设计文件排错、逻辑综合、逻辑分配、适配(结构综合)、时序仿真文件提取和编程下载文件装配等操作。

在Quartus7.2集成环境下,执行“File”菜单中的“Create Default Symbol”命令,可为通过编译的图形设计文件产生一个元件符号,并被保存在工程目录中,该元件符号可以被其他电路系统设计调用,成为该系统的一个基本元件。其输入/输出端口名由系统自动改为大写字母。

(3)仿真设计文件

    在Quartus7.2波形编辑方式下,编辑adder.gdf的波形文件,并完成输入信号a、b和cin输入电平的设置。波形文件编辑结束后也要将波形文件保存在工程目录中,在存盘操作时,系统会自动将当前设计的文件名作为波形文件名,并以.scf为文件类型(例如1位全加器的波形文件是dder.scf),所以操作者可以直接单击“OK”按钮结束波形文件的存盘操作。

波形文件存盘后,执行启动仿真器“Simulator”命令开始仿真,可通过观察仿真波形进行设计电路的功能验证。

3.  4位加法器的设计

4位加法器的设计中,全加器成为底层文件ain[3..0]和bin[3..0]是两个4位二进制输入端,cin是低位来得进位输入端,sum[3..0]是4位和输出端,cout是向高位进位的输出端。原理图如图3所示。

  4位加法器原理图

ain[3..0]的右边连接了一条粗的信号线,表示该信号与有ain[3]~ain[0]文字标注的4个全加器的ain输入端连接。同理bin[3..0]和sum[3..0]。粗线表示多条信号线组成的总线,细线表示单信号线。用鼠标左键单击信号线,使之变成红色,然后在红线上单击右键,选择“line style”命令,然后选择相应的粗或细信号线即可。单击编辑窗口左边“A”按钮可以在信号线上添加文字标注。

.各模块符号图、仿真图

 

四、实验结果与分析

   这次的实验,就是要利用与门和或门等元件得到想要的结果。我们需要设计的是4位的加法器,所以在需要4个全加器来组成;而全加器不能直接在Quartes 软件中直接调用,所以我们就要先设计出半加器,再由两个半加器组成全加器。实验中我常使用了多组数据,都能在仿真中得出正确的结果。波形上都有一些延迟,不过属于正常现象。与我通过计算得出的结果一样

五.心得体会

。 EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的电子设计方法。

      通过本次的学习, 我初步了解到EDA设计使用的软件QuartusⅡ的基本操作及使用方法,以及半加器、1位全加器和四位全加器的设计及仿真过程。我对电子设计有了更深一步的认识,也提升了我对学科的兴趣爱好,相信电子设计自动化会更多地在生活中被应用.

,参考资料

1.教材

[1]江国强主编。《EDA技术与应用》(第二版)。北京:电子工业出版社,20##年

2.参考书

[1] 潘松等主编。《EDA技术实用教程》(第二版)。科学出版社,20##年

[2] 宋万杰等主编。《CPLD技术及其应用》。西安电子科技大学出版,1999年

[3] 侯伯亨等主编。《VHDL硬件描述语言与数字逻辑电路设计》。西安电子科技大学出版社,20##年


第二篇:EDA课程设计——多功能数字钟课程设计报告


多 功 能 数 字 电 子 钟

一、 设计要求

1、 具有以二十四小时计时、显示、整点报时、时间设置和闹钟的功能。

2、 设计精度要求为1S。

二.系统功能描述

1 . 系统输入:系统状态及校时、定时转换的控制信号为k、mode、set;

时钟信号clk,采用1024Hz;

系统复位信号为reset。输入信号均由按键产生。

系统输出:LED显示输出,蜂鸣器声音信号输出。

多功能数字钟系统功能的具体描述如下:

2. 计时:正常工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。

3. 校时:在计时状态显示下,按下“set键”,进入“小时”校准状态,之后按下“k键”则进入“分”校准状态,

继续按下“k键”则进入“秒复零”状态,第三次按下“k 键”又恢复到正常计时显示状态。

1)“小时”校准状态:在“小时”校准状态下,显示“小时”数码管以1Hz的频率递增计数。

2)“分”校准状态:在“分”校准状态下,显示“分”的数码管以1Hz的频率递增计数。

3)“秒”复零状态:在“秒复零”状态下,显示“秒”的数码管复零。

4. 整点报时:蜂鸣器在“59”分钟的第“51”、“53”、“55”、“57‘秒发频率为512Hz的低音,在“59”分钟的第

“59”秒发频率为1024Hz的高音,结束时为整点。

5. 显示:要求采用扫描显示方式驱动6个LED数码管显示小时、分、秒。

闹钟:闹钟定时时间到,蜂鸣器发出周期为1s的“滴”、“滴”声,持续时间为10s;闹钟定时显示。

6. 闹钟定时设置:在闹钟定时显示状态下,按下“set键”,进入闹钟的“时”设置状态,之后按下“k键”进入

闹钟的“分”设置状态,继续按下“k 键”则进入“秒”设置状态,第三次按下“k键”又恢复到闹钟定时显示状态。

1) 闹钟“小时”设置状态:在闹钟“小时”设置状态下,显示“小时”的数码管以1Hz的频率递增计数。

2) 闹钟:“分”设置状态:在闹钟“分”设置状态下,显示“分”的数码管以1Hz的频率递增计数。

三、 控制器的MDS图及多功能数字系统结构逻辑框图

1、 控制器的MDS图

S0:显示计时时间 s1:调计时的时 s2:调计时的分 s3:调计时的秒 S4:显示闹铃时间 s5:调闹铃的时 s6:调闹铃的分 s7:调闹铃的秒

2、 多功能数字系统结构逻辑框图

EDA课程设计多功能数字钟课程设计报告

EDA课程设计多功能数字钟课程设计报告

四、各功能模块设计说明及源程序

1、控制器:

设计说明:根据外部的输入控制信号,完成各个状态之间的转换,并在相应状态输出相应的控制信号,从而对整个系统的工作进行控制。

控制器:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

entity contl is

port(clk,reset,k,set:in std_logic;

cht,cmt,cst,cha,cma,csa,flashh,,sel_showflashm,flashs:out std_logic);

end contl;

architecture ar of contl is

type state_type is(s0,s1,s2,s3,s4,s5,s6,s7);

signal state:state_type;

begin

process(clk,reset,k,set)

begin

if(rising_edge(clk))then

if(reset='1')then

state<=s0;

end if;

case state is

when s1=>sel_show<='1';

cht<='1';flashh<='1';

if(k='1')then

state<=s2;

else state<=s1;

end if;

when s2=>sel_show<='1';

cmt<='1';flashm<='1';

if(k='1' )then

state<=s3;

else state<=s2;

end if;

when s3=>sel_show<='1';

cst<='1';flashs<='1';

if(k='1' )then

state<=s0;

else state<=s3;

end if;

when s4=>sel_show<='0';

if(k='0' and set='1')then

state<=s5;

elsif(k='1' and set='0')then

state<=s0;

else state<=s4;

end if;

when s5=>sel_show<='0';

cha<='1';flashh<='1';

if(k='1')then

state<=s6;

else state<=s5;

end if;

when s6=>sel_show<='0';

cma<='1';flashm<='1';

if(k='1' )then

state<=s1;

else state<=s0;

end if;

when s7=>sel_show<='0';

csa<='1';flashs<='1';

if(k='0' and set='1')then

state<=s4;

else state<=s7;

end if;

when s0=>sel_show<='1';

if(k='0' and set='1')then

state<=s1;

elsif(k='1' and set='0')then

state<=s4;

else state<=s0;

end if;

end case;

end if;

end process;

end ar;

2、计时校时电路:

设计说明:该电路实现计时、校时功能。 源程序:

EDA课程设计多功能数字钟课程设计报告

二十四进制计数器:

源程序:library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

entity m24 is

port(en,clk : in std_logic;

p0,p1 :out std_logic_vector(3 downto 0)); end m24;

architecture ar of m24 is

signal q0,q1:integer range 0 to 15;

begin

process(clk)

begin

if (rising_edge(clk)) then

if (en='0' or (q0=3 and q1=2)) then

q0<=0; q1<=0;

elsif(q0=9) then

q0<=0; q1<=q1+1;

else q0<=q0+1;

end if;

end if;

p0<= conv_std_logic_vector(q0,4);

p1<= conv_std_logic_vector(q1,4);

end process;

end ar;

六十进制计数器:

源程序:library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

entity m60 is

port(en,clk : in std_logic;

x: out std_logic;

p0,p1:out std_logic_vector(3 downto 0)); end m60;

architecture ar of m60 is

signal q0,q1:integer range 0 to 15;

begin

process(clk)

begin

if (rising_edge(clk)) then

if (en='0' or (q0=9 and q1=5)) then

q0<=0; q1<=0; x<='1';

elsif(q0=9) then

q0<=0; q1<=q1+1;

else q0<=q0+1;x<='0';

end if;

end if;

p0<= conv_std_logic_vector(q0,4);

p1<= conv_std_logic_vector(q1,4);

end process;

end ar;

选择器源程序:

library ieee;

use ieee.std_logic_1164.all;

entity conl is

port(f1,f4,c: in std_logic;

f :out std_logic);

end conl;

architecture ar of conl is

begin

process(c,f1,f4)

begin

if(c='0')then

f<=f1;

else f<=f4;

end if;

end process;

end ar;

3、显示控制电路:

设计说明:该模块控制最终显示的计时时间还是闹铃时间。

源程序:

library ieee;

use ieee.std_logic_1164.all;

entity show_con is

port(ts1,ts2,tm1,tm2,th1,th2,bs1,bs2,bm1,bm2,bh1,bh2:in std_logic_vector(3 downto 0); s1,s2,m1,m2,h1,h2,line:out std_logic_vector(3 downto 0);

sel_show ,clk,flashs,flashm,flashh:in std_logic);

end show_con;

architecture ar of show_con is

signal q:integer range 0 to 1;

begin

process(clk)

begin

if(rising_edge(clk))then

q<=q+1;

if(flashh='1'and q=1)then

h1<="1111";h2<="1111";

elsif(flashm='1'and q=1)then

m1<="1111";m2<="1111";

elsif(flashs='1'and q=1)then

s1<="1111";s2<="1111";

else

if(sel_show='1' )then

s1<=ts1;

s2<=ts2;

m1<=tm1;

m2<=tm2;

h1<=th1;

h2<=th2;

else

s1<=bs1;

s2<=bs2;

m1<=bm1;

m2<=bm2;

h1<=bh1;

h2<=bh2;

end if;

end if;

end if;

line<="1110";

end process;

end ar;

4、定时比较电路:

设计说明:包含两个模块,定时模块和比较模块;完成定时时间的设定、定时时间的输出、计时时间与定时时间比较并输出相应的比较结果控制蜂鸣器的工作,从而实现闹铃功能。 比较模块源程序:

library ieee;

use ieee.std_logic_1164.all;

entity com_t_d is

port(clk : in std_logic;

comout: out std_logic;

th1,th2,tm1,tm2,ts1,ts2,h1,h2,m1,m2:in std_logic_vector(3 downto 0);

bh1,bh2,bm1,bm2,bs1,bs2:out std_logic_vector(3 downto 0));

end com_t_d;

architecture ar of com_t_d is

begin

process(clk)

begin

if(rising_edge(clk))then

if(th1=h1 and th2=h2 and tm1=m1 and m2=tm2)then comout<='1';

bh1<= th1;

bh2<= th2;

bm1<= tm1;

bm2<= tm2;

bs1<= ts1;

bs2<= ts2;

else comout<='0';

bh1<= th1;

bh2<= th2;

bm1<= tm1;

bm2<= tm2;

bs1<= ts1;

bs2<= ts2;

end if;

end if;

end process;

end ar;

定时模块逻辑框图:

EDA课程设计多功能数字钟课程设计报告

总图:

5、报时闹铃电路:

设计说明:该模块整点报时和闹铃输出。

源程序:

library ieee;

use ieee.std_logic_1164.all;

entity bel is

port(m1,m2,s1,s2:in std_logic_vector(3 downto 0);

bell:out std_logic;

compout,f512,f1024,clk,k:in std_logic);

end bel;

architecture ar of bel is

begin

process(m1,m2,s1,s2,compout,clk)

begin

if(rising_edge(clk))then

if(k='1')then

if(compout='1') then bell<=f1024;

elsif(m1="0101" and m2="1001" and s1="0101" and s2="0001" )then bell<=f512; elsif(m1="0101" and m2="1001" and s1="0101" and s2="0011" )then bell<=f512; elsif(m1="0101" and m2="1001" and s1="0101" and s2="0101" )then bell<=f512;

EDA课程设计多功能数字钟课程设计报告

elsif(m1="0101" and m2="1001" and s1="0101" and s2="0111" )then bell<=f512;

elsif(m1="0101" and m2="1001" and s1="0101" and s2="1001" )then bell<=f512;

else bell<=clk;

end if;

else bell<=clk;

end if;

end if;

end process;

end ar;

6、动态显示电路:

设计说明:该模块由一个八选一选择器、一个模8计数器、一译码驱动电路组成。用于控制显示正常计时时间或闹铃时间。

源程序:

八选一模块:

library ieee;

use ieee.std_logic_1164.all;

entity mux8to1 is

port (d0,d1,d2,d3,d4,d5,d6,d7: in std_logic_vector(3 downto 0);

a :in std_logic_vector(2 downto 0);

q : out std_logic_vector(3 downto 0));

end mux8to1;

architecture ar of mux8to1 is

begin

process(d0,d1,d2,d3,d4,d5,d6,d7,a)

begin

case a is

when"000"=>q<=d0;

when"001"=>q<=d1;

when"010"=>q<=d2;

when"011"=>q<=d3;

when"100"=>q<=d4;

when"101"=>q<=d5;

when"110"=>q<=d6;

when"111"=>q<=d7;

when others=>q<="XXXXXXXX";

end case;

end process;

end ar;

模八计数器:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

entity m8 is

port(en,clk : in std_logic;

q :out std_logic_vector(2 downto 0)); end m8;

architecture ar of m8 is

signal q0 :integer range 0 to 10;

begin

process(clk)

begin

if (rising_edge(clk)) then

if (en='0' or q0=7) then

q0<=0;

else q0<=q0+1;

end if;

end if;

q<= conv_std_logic_vector(q0,3);

end process;

end ar;

译码驱动电路

library ieee;

use ieee.std_logic_1164.all;

entity tra4to8 is

port ( a :in std_logic_vector(3 downto 0);

q : out std_logic_vector(6 downto 0)); end tra4to8;

architecture ar of tra4to8 is

begin

process(a)

begin

case a is

when"0000"=>q<="1111110";

when"0001"=>q<="0110000";

when"0010"=>q<="1101101";

when"0011"=>q<="1111001";

when"0100"=>q<="0110011";

when"0101"=>q<="1011011";

when"0110"=>q<="0011111";

when"0111"=>q<="1110000";

when"1000"=>q<="1111111";

when"1001"=>q<="1110011";

when"1111"=>q<="0000000";

when"1110"=>q<="0000001";

when others=>q<="XXXXXXX"; end case;

end process;

end ar;

五.各个大模块的防真图

(一)、控制器

EDA课程设计多功能数字钟课程设计报告

(二)、计时校时电路

EDA课程设计多功能数字钟课程设计报告

(三)、显示控制电路

EDA课程设计多功能数字钟课程设计报告

(四)分频器

EDA课程设计多功能数字钟课程设计报告

(五)总体仿真图

EDA课程设计多功能数字钟课程设计报告

六、 总结及体会

通过这次VHDL课程设计,我学到了很多,对于原本掌握的不好的数字逻辑相关知识,在课程设计具体实践中有了很深刻的认识,在对于MAX+plusⅡ的操作上也有很大的提高,增加了操作的熟练程度,现在我已经有信心做任何的设计课题。

在学到新知识的同时,我也认识到了VHDL设计的困难性

最后,感谢老师们帮我处理一些解决不了的问题,还要感谢在我思维陷入困境时给予我指点,让我获得灵感的同学们,谢谢大家!

更多相关推荐:
课程设计报告

1课程设计目的课程设计是船舶设计原理课程重要的实践性教学环节是培养学生掌握船舶设计基本原理和能力的技术基础主尺度论证与总布置设计是船舶总体设计的重要组成部分通过课程设计的训练力求使学生实现从学生到船舶设计师的角...

课程设计报告内容

一设计目的1强化上机动手能力在理论和实践的基础上进一步巩固数据结构课程学习的内容掌握工程化软件设计的基本方法2掌握图的创建和应用3掌握迪杰斯特拉以及Prim等基本算法思想4掌握if语句及switch语句的运用方...

课程设计报告

中国计量学院信息工程学院课程设计报告课程设计名称系统设计与仿真课程计二级学院信息工程学院专业班级10电信2班学姓成绩号名1000301232廖壁波指导老师20xx年12月13日中国计量学院信息工程学院课程设计报...

课程设计报告模板

信息科学与工程学院高级语言程序设计课程设计报告学生成绩管理系统学科专业计算机科学与技术班级1301学号指导教师唐郑熠讲师学生二零年月目录目录1设计任务12需求分析121基础功能122扩展功能13系统概要设计13...

课程设计报告

扬州大学数据结构课程设计报告课题名称姓名学院系科班级指导老师日期自来水管架设问题广陵学院陈宏建1一课程设计的题目自来水管理架设问题问题描述若要在扬州大学的八个居民区A区B区C区D区E区F区G区H区之间架设自来水...

课程设计报告

系统软件课程设计时钟中断与进程调度学号姓名指导教师11070319许明秀金雪云20xx年12月一报告摘要进程调度是操作系统十分重要的一个部分在操作系统的设计过程中进程调度和时钟中断形成了密不可分的关系系统时钟定...

课程设计报告

计算机高级语言课程设计报告班级学号姓名蔡路日期学生成绩管理系统19xx3120xx100031020xx年1月18日一课程设计题目与要求实习题目学生成绩管理系统实习内容C语言面向对象的分析与设计基本要求学生成绩...

计算机网络课程设计报告

计算机网络课程设计报告一.课程设计的题目、目的及要求.........................................................2二.课程设计的内容(分析和设计).....…

软件课程设计报告

任务书北京信息科技大学计算机软件基础课程设计题目从某个源点到其余各顶点的最短路径学院专业学生姓名班级学号指导老师起止时间任务书1摘要摘要本次课程设计的问题假设西安北京沈阳武汉4个城市构成小型交通网4个城市表示图...

软件课程设计报告

中南民族大学软件课程设计报告电子信息工程09级题目学生吴雪学号指导教师王锦程电子工程0907100220xx年4月25日简易网络聊天系统摘要计算机网络通信技术已经深入我们的生活并给我们即使通信带来了很大的方随着...

JAVA_课程设计报告

JAVA程序设计课程设计报告设计题目学院名称专业班级姓名学号1目录一需求分析3二概要设计3三详细设计331数据库设计332模块及窗体设计3321数据库模块设计3322用户登录识别模块5323用户信息管理模块61...

C语言课程设计报告--实验设备管理系统--吕浙明

课程设计报告课程名称C语言课程设计课题名称实验设设备管理系统专业计算机科学与技术班级191114班学号姓名指导教师20##年08月27日中国地质大学计算机高级语言(C)课程设计报告姓名学号班级191114专业计…

课程设计报告(33篇)