VHDL硬件描述语言实验报告

合集下载

VHDL实验报告

VHDL实验报告

VHDL实验报告《创新实验》实验报告—基于vhdl的编程和硬件实现一、实验目的1.2.3.4. 熟悉和掌握硬件描述语言vhdl的基本语法及编写;掌握软件xilinx ise 10.1的使用;熟悉sdz-6电子技术实验箱的使用;了解节拍脉冲发生器等基本电路的实现;5. 了解八位二进制计数器的功能与设计;6. 学习键盘和七段数码管显示的控制和设计。

二、实验内容1. xilinx ise 10.1软件的使用;2. 节拍脉冲发生器等基本电路的实现;3. 八位二进制计数器的实现4. 键盘扫描及显示的实现三、实验器材1、 pc机2、 sdz-6电子技术实验箱3、正负5v电源4、 i/o接口线四、软件的使用在安装xilinx10.1软件时,需要一个id号,其实这个id号是可以重复使用的,几个同学在官网注册后就可以共享id号了。

安装完成之后就可以使用这个软件编写相应的vhdl的程序。

1.新建工程file—>new project 弹出下面的对话框输入工程名后单击next。

然后根据本实验的实验箱进行以下设置。

以后的步骤一般都是单击next(有些资料上会介绍有些这些步骤的具体功能,但对于本实验不必用到),最后单击finish,完成新建一个工程。

在窗口的左边会出现刚刚新建的工程,如下: 2.新建一个vhdl的源文件。

在上图中,右击工程选择new source ,弹出如下对话框。

在对画框的左边选择vhdl module,输入文件的名字(改名字最好是你定义的实体的名字)。

单击next。

出现下面的对话框。

该对话框主要是对外部端口的编辑。

可以直接跳过,即单击next,在源文件上编辑端口。

然后在接下来的对话框中单击finish。

完成建立一个源文件。

窗口右边就会出现刚才编辑的源文件。

3.编写和编译代码将事先编好的代码复制到源文件里,然后保存文件。

选中左边的文件名,在窗体的左边出现如下编辑文档内容。

选择synthesize —xst—》check syntax,双击check syntax,开始编译源文件。

vhdl实验报告

vhdl实验报告

vhdl实验报告VHDL实验报告引言:VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,广泛应用于数字电路设计和仿真。

本篇实验报告将介绍我在VHDL实验中的学习和实践经验,包括实验目的、实验过程、实验结果以及对VHDL的理解和展望。

一、实验目的VHDL实验的主要目的是让我们掌握VHDL语言的基本语法和使用方法,能够利用VHDL描述数字电路,并通过仿真和综合工具进行验证和实现。

通过这些实验,我们可以深入了解数字电路的原理和设计方法,提高我们的逻辑设计能力和工程实践能力。

二、实验过程在实验过程中,我们首先学习了VHDL的基本语法,包括实体声明、端口声明、信号声明等。

然后,我们通过实例学习了VHDL的建模方法,包括组合逻辑电路的建模和时序逻辑电路的建模。

在组合逻辑电路的建模中,我们学习了使用逻辑运算符和条件语句描述电路的功能;在时序逻辑电路的建模中,我们学习了使用过程语句和时钟信号描述电路的状态转换。

在学习了VHDL的基础知识后,我们开始进行实验设计。

我们选择了一个简单的数字电路,如4位加法器,来进行实验验证。

首先,我们通过VHDL语言描述了加法器的功能和结构,包括输入端口、输出端口和中间信号。

然后,我们使用仿真工具进行了功能仿真,验证了加法器的正确性。

接着,我们使用综合工具将VHDL代码综合成门级电路,并进行了时序仿真和时序优化,验证了加法器的时序正确性和性能。

三、实验结果通过实验,我们成功地实现了4位加法器的功能,并验证了其正确性和性能。

在功能仿真中,我们输入了不同的测试数据,观察了输出结果,发现加法器能够正确地进行加法运算,并得到了正确的结果。

在时序仿真中,我们观察了电路的时序行为,包括输入信号的变化、输出信号的响应和中间信号的传播延迟等,发现加法器能够在时序上满足要求,并且具有较好的性能。

VHDL硬件描述语言实验指导书(部分)

VHDL硬件描述语言实验指导书(部分)
行号,使用语言编写的电路清晰易读。底层编辑仍然采用Chipview 方式,管脚排
列位置映射了实际器件管脚,简单的鼠标拖放即可完成底层编辑。
2、持的器件更多:除了支持MAX3000、MAX7000、FLEX6000、FLEX10KE、ACEX1K 等
MAX+PLUSⅡ已支持的器件外,还支持PEX20K、APEX20KE,APEXⅡ、EXCALIBUR-ARM、
实验 8 计数器设计...............................44
实验 9 可预置数的计数器设计.....错误!未定义书签。
第三部分 设计型实验...............错误!未定义书签。
实验 1 频率计设计...............错误!未定义书签。
件。具有许多优良的特性。
1、承了MAX+PLUSⅡ的优点:图形输入依然形象,图形符号与MAX+PLUSⅡ符号一样符
合数字电路的特点,大量74 系列器件符号使初学者在较短的时间内利用图形编辑
设计出需要的电路。文本输入几乎与MAX+PLUSⅡ相同,而且在文本的每一行都有
使用。其设置界面如图1-4 所示:
3
----------------------- Page 5-----------------------
实验 1 译码器及译码显示电路设计.................16
实验 2 编码器及数据选择器设计...................20
实验 3 加法器设计...............................23
实验 4 乘法器设计...............................26

vhdl设计实验报告

vhdl设计实验报告

vhdl设计实验报告VHDL设计实验报告引言VHDL(Very High Speed Integrated Circuit Hardware Description Language)是一种硬件描述语言,广泛应用于数字电路设计和验证。

本实验旨在通过设计一个简单的电路来熟悉VHDL语言的基本语法和设计流程。

一、实验背景数字电路是现代电子系统的基础,而VHDL则是描述和设计数字电路的重要工具。

VHDL可以帮助工程师们以一种形式化的语言来描述电路的功能和结构,从而实现电路的模拟和验证。

二、实验目的本实验的目的是通过使用VHDL语言设计一个简单的电路,加深对VHDL语言的理解,并掌握基本的电路设计流程。

三、实验步骤1. 确定电路功能在设计电路之前,首先需要明确电路的功能。

本实验中,我们选择设计一个4位加法器电路。

2. 设计电路结构根据电路功能的要求,设计电路的结构。

在本实验中,我们需要设计一个4位加法器,因此需要使用4个输入端口和一个输出端口。

3. 编写VHDL代码使用VHDL语言编写电路的描述代码。

在代码中,需要定义输入和输出端口的类型和位宽,并实现电路的功能。

4. 进行仿真使用仿真工具对设计的电路进行仿真,以验证电路的功能是否符合预期。

通过输入不同的测试数据,观察输出是否正确。

5. 下载到FPGA开发板将设计好的电路代码下载到FPGA开发板上进行验证。

通过连接输入信号和观察输出信号,验证电路在实际硬件上的运行情况。

四、实验结果与分析经过仿真和实际验证,我们设计的4位加法器电路在功能上符合预期。

输入不同的数据进行加法运算时,输出结果都正确。

五、实验总结通过本次实验,我们深入了解了VHDL语言的基本语法和设计流程。

通过设计一个简单的电路,我们掌握了VHDL的应用方法,并通过仿真和实际验证,加深了对电路设计的理解。

六、实验心得本实验让我对VHDL语言有了更深入的认识。

通过实际操作,我更加熟悉了VHDL的编写和仿真流程。

北理VHDL硬件描述语言实验(四次全)

北理VHDL硬件描述语言实验(四次全)
2
clk_gen:PROCESS BEGIN clk<='0'; WAIT FOR clk_period/2; clk<='1'; WAIT FOR clk_period/2; END PROCESS; d_gen:PROCESS BEGIN d<='0'; WAIT FOR 100 ns; d<='1'; WAIT FOR 100 ns; END PROCESS; rst_gen:PROCESS BEGIN rst<='1'; WAIT FOR 150 ns; rst<='0'; WAIT FOR 150 ns; rst<='1'; WAIT FOR 150 ns; WAIT; END PROCESS; END behave;
1. linux 基本操作 · 登陆后,桌面右键“open terminal”,输入命令“vsim”打开 Modelsim 软件; · 右键“open terminal”,输入命令“gftp”,出现窗口,进行登录连接主机向 ftp 上传文 件。 2. Modelsim 基本操作流程 建立工程 创建文件 编写程序 保存并编译 仿真 3.设计编写 D 触发器
四、仿真结果及说明
实验仿真的图形如下
从激励文件可以看出,时钟是周期为 50ns 的方波,而复位端 rst 的信号设置为前 150ns 为高电平,接下来 150ns 为低电平,之后均为高电平。 D 触发器的 VHDL 语言中明确指出
也就是说,复位信号 rst 高有效,在激励文件中,rst=’0’时,复位端无效,D 触发器正常 工作。 在仿真图形中可以看到,在复位端无效的 150ns 中,每一次时钟的上升沿到来,输出 q

vhdl实验报告--蜂鸣器

vhdl实验报告--蜂鸣器

vhdl实验报告--蜂鸣器VHDL 实验报告蜂鸣器一、实验目的本次实验的主要目的是通过使用 VHDL 语言来设计并实现一个蜂鸣器的控制电路,深入理解数字电路的设计原理和 VHDL 编程的基本方法,掌握硬件描述语言在实际电路设计中的应用,提高自己的逻辑思维和问题解决能力。

二、实验原理蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电。

常见的蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种。

有源蜂鸣器内部自带了振荡源,只要给其供电就能发出固定频率的声音;无源蜂鸣器则需要外部提供一定频率的脉冲信号才能发声。

在本实验中,我们使用 VHDL 语言来控制一个无源蜂鸣器。

通过编写代码,生成特定频率的脉冲信号,从而驱动蜂鸣器发声。

三、实验设备及工具1、计算机2、 Quartus II 软件3、开发板四、实验内容及步骤1、设计思路首先,需要确定蜂鸣器发声的频率。

通过计算得出所需的时钟周期数。

然后,使用计数器来产生特定频率的脉冲信号。

最后,将脉冲信号输出到蜂鸣器的控制引脚。

2、 VHDL 代码编写```vhdllibrary ieee;use ieeestd_logic_1164all;use ieeenumeric_stdall;entity buzzer_control isport(clk : in std_logic;rst : in std_logic;buzzer : out std_logic);end entity;architecture Behavioral of buzzer_control isconstant CLK_FREQ : integer := 50_000_000; 系统时钟频率constant BUZZER_FREQ : integer := 1000; 蜂鸣器发声频率signal counter : integer range 0 to CLK_FREQ/BUZZER_FREQ 1; signal clk_div : std_logic;beginprocess(clk, rst)beginif rst ='1' thencounter <= 0;clk_div <='0';elsif rising_edge(clk) thenif counter = CLK_FREQ/BUZZER_FREQ 1 thencounter <= 0;clk_div <= not clk_div;elsecounter <= counter + 1;end if;end if;end process;buzzer <= clk_div;end architecture;```3、编译与仿真将编写好的 VHDL 代码在 Quartus II 软件中进行编译。

VHDL实验报告汇总

VHDL实验报告汇总

实验一4选一多路选择器一:实验目的及实验环境目的1、熟悉ModelSim SE 6.5c的verilog 的文本设计流程,组合电路的设计、仿真和测试。

2、用verilog语言完成设计4选一多路选择器。

3、熟悉文本输入及仿真步骤。

4、初步了解可编程器件设计的全过程。

环境1、P C 机一台2、M odelSim SE 6.5c二. 实验内容1、用verilog语言完成设计4选一多路选择器,2、用结构建模及数据流建模两种方法实现。

3、对于所设计的程序进行编译,检查纠错。

4、程序完善之后进行程序的仿真并进行波形的记录与分析三.实验步骤1、建立工程2、添加文件到工程3、编译文件4、查看编译后的设计单元5、将信号加入波形窗口6、运行仿真四.运行结果五.总结本次实验让我更加的熟悉modelsim使用方法,以及使用时应该注意的问题。

在试验中也学习到了Verilog语法。

在实验中我们应该注意verilog的格式要求,在用编程语言编程的时候,要自习留意语法标准,整理好逻辑思维的同时保证格式的正确。

否则就会浪费大量的时间来完成实验。

试验开始到结束这一过程中,我遇到了很多困难,后来都在同学的提醒和帮助下克服了。

相信有了这次对这个语言和这个软件的接触,我们都有了更加深入的理解。

六.源代码module mux41(a,b,c,d,s1,s0,out);input[1:0] a,b,c,d;input s1,s0;output[1:0] out;reg[1:0] out;always @(a or b or c or d or s1 or s0)begin :mux41case({s1,s0})2'b00: out<=a;2'b01: out<=b;2'b10: out<=c;2'b11: out<=d;default: out=a;endcaseendendmodulemodule sti;reg[1:0] a,b,c,d;reg s0,s1;wire[1:0] out;mux41 dtg(a,b,c,d,s0,s1,out);initialbegina=3'd0;b=3'd1;c=3'd2;d=3'd3;s0=0;s1=0;#100 a=3'd0;b=3'd1;c=3'd2;d=3'd3;s0=0;s1=1;#100 a=3'd0;b=3'd1;c=3'd2;d=3'd3;s0=1;s1=0;#100 a=3'd0;b=3'd1;c=3'd2;d=3'd3;s0=1;s1=1;endendmodule实验二、Verilog HDL设计分频器及计数器一.实验目的及实验环境1)实验目的1、掌握较复杂数字电路或系统的纯Verilog HDL实现方法;2、体会纯Verilog HDL语言输入设计与原理图输入设计的差别;3、更加熟练的使用modelsim软件;2)实验环境计算机一台,使用modelsim软件进行实验仿真3)实验内容1、使用modelsim设计二分频器;2、使用modelsim设计模8计数器;三.测试数据及运行结果1、分频器正常测试数据(3组)及运行结果;2、计数器正常测试数据(3组)及运行结果通过本次实验,进一步熟悉并加深了对verilong语言的认识,初步运用并熟悉了整个程序及操作,加深对分频器的理解。

VHDL实验报告(1)

VHDL实验报告(1)

VHDL 实验报告******班级:电子0701学号:************实验一组合逻辑电路设计一实验目的:1. 熟悉mux+pluxII软件,可以进行新文件的编辑和文件的修改。

2. 掌握门电路VHDL语言程序设计方法。

3. 掌握选择器VHDL语言程序设计方法。

4. 掌握加法器VHDL语言程序设计方法。

5. 熟悉VHDL编程的基本方法。

二实验设备:1.计算机2.Max+PlusII软件三实验原理及内容:1 二输入与门(1)实验原理二输入与门是我们数字电路中的一个基础逻辑门电路,是最基本的逻辑门电路之一,也是最简单的逻辑门之一。

它能实现两个输入端的相与,一般有三个端口。

二输入与门的表达式是:Y=ab二输入与门的逻辑符号如图(1)所示,真值表如表(1)所示。

图(1)与门逻辑符号表(1)与门真值表(2)实验内容a.在mux+pluxII文本编辑环境下,打开新文本,编写两输入与门VHDL语言源程序,程序设计如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY and2 ISPORT(a,b: IN STD_LOGIC;Y: OUT STD_LOGIC);END and2;ARCHITECTURE behave OF and2 ISBEGINY <= a and b;END behave;b.对源程序进行编译,按照提示进行修改,直至编译通过。

c.对编译程序进行仿真,分析并记录仿真波形,其仿真波形图如图(2)所示。

图(2)二输入与门仿真图d.在自己的目录下保存相应的源文件、波形文件。

2 四选一选择器(1)实验原理四选一选择器如图(3)所示,真值表如表(2)所示。

图(3)mux4管脚图表(2)mux4真值表(2)实验内容a.在mux+plusII文本编辑环境下,打开新文件,编辑四选一VHDL源程序文件,其程序设计如下:LIBRARY IEEEUSE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT(A: IN STD_LOGIC_VECTOR (1 DOWNTO 0);D0,D1,D2,D3:IN STD_LOGIC;G:IN STD_LOGIC;Y: OUT STD_LOGIC);END mux4;ARCHITECTURE dataflow OF mux4 ISBEGINPROCESS (A,D0,D1,D2,D3,G)BEGINIF (G ='0') THENIF (A="00")THEN Y <= D0;ELSIF(A="01")THEN Y <= D1;ELSIF(A="10")THEN Y <= D2;ELSE Y <= D3;END IF;ELSE Y <='0';END IF;END PROCESS;END dataflow;b.对源程序进行编译,按照提示进行修改,直到编译通过。

实验报告

实验报告

微电子课程设计实验报告一、设计要求应用VHDL或Verilog硬件描述语言进行设计,在ISE5.2开发工具上选择Xinlix 公司的FPGA芯片完成整个电路的设计工作,包括文件输入、编译、功能仿真、综合、时序仿真和下载实现等。

3道题必须在实验箱上进行下载后验证。

二、设计报告内容要求要有实验题目、设计思路、设计流程、硬件描述语言代码、电路图、时序仿真图和结果分析等。

用专用的报告纸手写报告,正文页必须在10页以上,仿真图打印出来粘贴在报告上,编程代码写在附页上。

若有报告雷同,报告成绩为零分。

三、设计实验内容1、某晚会用红绿黄3组彩灯采光,3组灯亮的顺序是:红灯亮—绿灯亮—黄灯亮—红绿灯亮—绿黄灯亮—黄红灯亮—全亮—全暗。

重复以上过程,试设计这三组灯的控制电路。

输入时钟频率为512Hz,灯亮的时间在1—4秒之间,可以自由控制。

电路中以“1”代表灯亮,以“0”代表灯灭。

2、奇偶校验器系统的功能是对八位二进制数据及其奇偶校验位的输入进行校验,输出正确的奇、偶校验位。

ODD_IN与EVEN_IN是控制奇校验和偶校验功能输入,IN0到IN7是七位数据及一位校验位数据输入,IN_READY表示输入数据已经准备好,可以处理,当OUT_REQ输入表示要求输出数据,CLK端口用于接收时钟信号,支持系统的时钟上升沿同步。

当输出端口OUT_READY输出信号有效时,表示输出数据已经准备好,可以为下级电路使用,ODD_OUT与EVEN_OUT 用来输出正确的奇偶校验位。

上述控制端口均为高电平有效。

3、设计一个交通灯管理系统。

其功能如下:(1)公路上无车时,主干道绿灯亮,公路红灯亮(2)公路上有车时,传感器输出C=1,且主干道通车时间超过最短时间主干道交通灯由绿→黄→红,公路交通灯由红→绿;(3)公路上无车,或有车且公路通车时间超过最长时间,则主干道交通灯由红→绿,公路交通灯由绿→→红;(4)假设公路绿灯亮的最长时间等于主干道绿灯亮的最短时间,都为16秒,若计时到E=1;黄灯亮的时间设为4秒,若计时到F=1。

实验三VHDL

实验三VHDL

4、模7计数器
硬件描述语言1
端口说明: PORT( clk : IN STD_LOGIC; q : OUT INTEGER RANGE 0 TO 6);
功能描述:
VARIABLE cnt : INTEGER RANGE 0 TO 6; BEGIN IF (clk'EVENT AND clk = '1') THEN IF cnt < 6 THEN cnt := cnt + 1; ELSE cnt :=0; END IF; END IF; q <= cnt;
ARCHITECTURE arc_shiftreg OF shiftreg IS SIGNAL q_temp : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(cr,clk) BEGIN …… …… --见下页 END PROCESS; q<=q_temp; END arc_shiftreg;
假设数据已经被时钟的上升沿打入D触发器,那么数据 到达第一个触发器的Q端需要Tco,再经过组合逻辑的 延时Tdelay到达的第二个触发器的D端,要想时钟能在 第二个触发器再次被稳定的锁入触发器,则时钟的延 迟不能晚于Tco+Tdelay+Tsetup,(回顾建立和保持时 间的概念,就可以理解Tdelay) 由以上分析可知:最 小时钟周期:T=Tco+Tdelay+Tsetup 最快时钟频率 F= 1/T PLD开发软件也正是通过这个公式来计算系统运行 速度Fmax
硬件描述语言2: 功能描述:
IF (clk'EVENT AND clk='1') THEN CASE cnt IS WHEN "000"=>cnt<="001"; WHEN "001"=>cnt<="010"; WHEN "010"=>cnt<="011"; WHEN "011"=>cnt<="100"; WHEN "100"=>cnt<="101"; WHEN "101"=>cnt<="000"; WHEN others=>NULL; END CASE; END IF; q <= cnt;

数字电路设计实验vhdl语言实验报告

数字电路设计实验vhdl语言实验报告

实验一秒表计数器的设计实验目的:本实验通过设计四种频率可选的数字时钟系统, 以达到熟悉VHDL 语言编程语法、设计思路和熟练掌握Quartus II 开发软件的目的。

二、实验内容:该数字时钟的显示格式如下所示: HH: MM: SS, 其中HH表示时计数的两位, MM表示分计数的两位, SS表示秒计数的两位。

本系统输入信号分别为复位信号rst(高有效)、sel(两位信号, 分别可以选择2分频、4分频8分频和16分频)、clk_in(时钟信号)、8位时输出、8位分输出、8位秒输出(其中高4为表示对应的高半字节、低4位表示的低半字节, 譬如当时间为08:59:30时, 时输出为”0000_1000”,分输出为”0101_1001”,秒输出为”0011_0000”)。

该时钟系统可以通过Sel信号时钟运行的快慢。

三、实验流程:通过对实验内容的分析: 可以考虑时钟系统的可由三部分组成: 1.分频器:分频器为时序电路并且通过《数字电路》理论课程的学习可知由计数器来实现, 同学可以回想一下实验1中是如何实现计数器电路的设计), 该模块主要产生2.4.8、16分频的时钟信号;2.多路选择器:在VHDL中多路选择器为组合逻辑, 可以有多种实现方法, 在这里主要选用了case语句来实现。

该模块的作用是从分频器中根据Sel信号选择适当的时钟信号;3.时钟控制器:该模块比较复杂, 主要实现功能是实现一个24小时的计时。

当时间为00:00:59的时候下一个时钟到来时状态的跳变为00:01:00, 计时中多数计数为加1操作, 有几个特殊状态需要重点考虑:当时间产生分进数时, 譬如上例。

当时间产生时进数时, 譬如00:01:59时刻的下一个状态为00:02:00;当时间产生时进数时, 譬如00:59:59是个的下一个状态为01:00:00。

当时间产生天进数时, 譬如23:59:59的下一个状态为00:00:00。

四、仿真要求:1、本次试验的结果全部采用功能仿真分析:在结果图中能够看到让复位信号rst为有效的情况下, 所有的输出为00:00:00;2.当频率选择输出分别为”00”、”01”、”10”、”11”时秒为的进数分别包含2.4.8、16倍clk_in的时钟周期;3.可以看到完整的计时周期00:00:00->23:59:59->00:00:00。

vhdl全加器实验报告

vhdl全加器实验报告

vhdl全加器实验报告VHDL全加器实验报告引言:在数字电路设计领域,全加器是一种基本的逻辑电路。

它用于将两个二进制数相加,并产生相应的和与进位输出。

在本次实验中,我们将使用VHDL语言设计和模拟一个全加器电路,并通过实验验证其功能和正确性。

一、实验目的本实验的目的是通过设计和模拟一个VHDL全加器电路,加深对数字电路和VHDL语言的理解。

具体目标如下:1. 学习并掌握全加器的原理和电路结构;2. 掌握VHDL语言的基本语法和使用方法;3. 设计和模拟一个全加器电路,并验证其正确性;4. 分析和评估全加器电路的性能和优化方法。

二、全加器的原理和电路结构全加器是一种用于二进制加法的逻辑电路。

它接受两个输入位和一个进位输入位,并产生一个和输出位和一个进位输出位。

全加器的电路结构通常由两个半加器和一个或门组成。

半加器用于计算两个输入位的和,而或门用于计算进位输出位。

三、VHDL语言的基本语法和使用方法VHDL是一种硬件描述语言,用于描述和模拟数字电路。

它具有丰富的语法和功能,可以方便地进行电路设计和仿真。

VHDL语言的基本语法包括实体声明、端口声明、信号声明、过程声明等。

在本次实验中,我们将使用VHDL语言来描述和模拟全加器电路。

四、全加器电路的设计和模拟在本次实验中,我们将使用VHDL语言设计和模拟一个4位全加器电路。

首先,我们需要定义输入和输出信号,并声明全加器的实体和端口。

接下来,我们可以使用VHDL语言描述全加器的逻辑电路,包括半加器和或门的连接关系。

最后,我们可以使用仿真工具对全加器电路进行模拟,并观察输出结果。

五、全加器电路的验证和性能评估在模拟过程中,我们可以通过输入不同的二进制数来验证全加器电路的正确性。

我们可以逐个比较输入和输出的二进制数,并检查和进位输出是否与预期结果一致。

如果全加器电路能够正确地计算和输出结果,则说明设计和模拟过程是正确的。

此外,我们还可以评估全加器电路的性能和优化方法。

VHDL硬件课程设计实验报告

VHDL硬件课程设计实验报告

硬件课程设计实验报告一、全加器设计1、实验目的(1)了解四位全加器的工作原理。

(2)掌握基本组合逻辑电路的FPGA实现。

(3)熟练应用Quartus II进行FPGA开发。

2、实验原理全加器是由两个加数X i和Y i以及低位来的进位C i-1作为输入,产生本位和S i以及向高位的进位C i的逻辑电路。

它不但要完成本位二进制码X i和Y i相加,而且还要考虑到低一位进位C i-1的逻辑。

对于输入为X i、Y i和C i-1,输出为S i和C i的情况,根据二进制加法法则可以得到全加器的真值表如下表所示:全加器真值表由真值表得到S i和C i的逻辑表达式经化简后为:这仅仅是一位的二进制全加器,要完成一个四位的二进制全加器,只需要把四个级联起来即可。

i3、实验内容本实验要完成的任务是设计一个四位二进制全加器。

具体的实验过程就是利用实验系统上的拨动开关模块的K1~K4作为一个加数X输入,K5~K8作为另一个加数Y输入,用LED模块的LED1~LED8来作为结果S输出,LED亮表示输出‘1’,LED灭表示输出‘0’。

实验箱中的拨动开关、LED与FPGA的接口电路,以及拨动开关、LED 与FPGA的管脚连接在以前的实验中都做了详细说明,这里不在赘述。

4、实验现象与结果以设计的参考示例为例,当设计文件加载到目标器件后,拨动相应的拨动开关,输入两个四位的加数,则在LED灯上显示这两个数值相加的结果的二进制数。

5、实验报告(1)出不同的加数,绘仿真波形,并作说明。

(2)在这个程序的基础上设计一个八位的全加器。

(3)在这个程序的基础上,用数码管来显示相乘结果的十进制值。

(4)将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。

二、七段数码显示设计1、七段显示基本原理七段显示器,在许多产品或场合上经常可见。

其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为A、B、C、D、E、F、G与DP等八组发光二极管之排列,可用以显示0~9数字及英文数A、B、C、D、E、F。

(完整word版)2对4译码器VHDL实验报告.doc

(完整word版)2对4译码器VHDL实验报告.doc

通信与信息工程学院2012 /2013学年第二学期软件设计实验报告模块名称二对四译码器专业电子信息工程学生班级B100109学生学号学生姓名指导教师梅中辉、王奇、周晓燕、孔凡坤实验目的:本软件设计的目的和任务: 1.使学生全面了解如何应用该硬件描述语言进行高速集成电路设计; 2.通过软件使用、设计与仿真环节使学生熟悉 EDA-VHDL 开发环境; 3. 通过对基本题、综合题的设计实践,使学生掌握硬件系统设计方法(自底向上或自顶向下),熟悉 VHDL 语言三种设计风格,并且培养学生应用 VHDL 语言解决实际问题的能力。

实验设备: 1:微型计算机2:quartus II 开发软件实验课题: 2 对 4 译码器实验描述:设计一个 2 对 4 译码器(输入: A B 输出: Y3 Y2 Y1 Y0 ),真值表如图:A B Y3 Y2 Y1 Y00 0 1 1 1 00 1 1 1 0 11 0 1 0 1 11 1 0 1 1 1一:实验目的1:能了解组合逻辑中译码器电路的设计原理。

2:能利用 CPLD数字发展实验系统设计一个二对四译码器。

3:能自行验证所设计电路的正确性。

二:实验内容及要求设计一个 2-4 译码器,并验证输出数值的正确性。

三:实验器材1. 软件: Altera公司的Quartus ||软件。

2. 芯片: Altera公司的EP2C8T144C8。

1)、选择 Block Diagran/Schenatic File,单击 OK 按钮,打开图形2)、进入原理图编辑页面如下:导入逻辑门电路符号、输入/输出符号,用导线连接各逻辑单元如下:工程建立与编译建立工程:在 D 盘建立 test 文件夹,进入 quartusII7.2 主界面,新建编辑代码页面,选择 VHDL file ,点击 OK代码输完后存盘,文件名必需为 test8(文件名必须与实体名一致),目录为,按 project 菜单下 set as top-level entity 命令。

一位全加器_可编程逻辑器件VHDL实验报告

一位全加器_可编程逻辑器件VHDL实验报告

1.一位全加器实验报告一、实验目的要求学习计数器的设计、仿真和硬件测试,进一步熟悉VHDL设计技术。

设计程序独立完成全加器的仿真。

全加器由两个半加器组合而成,原理类似。

半加器不考虑低位进位,但有高位进位;全加器要考虑低位的进位且该进位和求和的二进制相加,可能获得更高的进位。

二、设计方法与原理图图1是一个一位二进制全加器电路图,由图1所示,由两个半加器和一个或门构成一个一位二进制全加器;ain,bin为全加器的输入端,cin为全加器的低位进位,sum是全加器的全加和,cout是全加器的全加进位端;从而实现一位二进制全加器。

(图1)一位二进制全加器原理图三、实验内容按照教材上的步骤,在max plus II上进行编辑、编译、综合、适配、仿真。

说明例中各语句的作用,详细描述示例的功能特点,给出其所有信号的时序仿真波形。

四、源程序library ieee;use ieee.std_logic_1164.all;entity full_adder isport(a,b,cin:in std_logic;cout,sum:out std_logic);end entity full_adder;architecture fd1 of full_adder iscomponent h_adderport(a,b:in std_logic;co,so:out std_logic);end component;component or2aport(a,b:in std_logic;c:out std_logic);end component;signal d,e,f:std_logic;beginu1:h_adder port map(a=>ain,b=>bin,co=>d,so=>e); u2:h_adder port map(a=>e,b=>cin,co=>f,so=>sum); u3:or2a port map(a=>d,b=>f,c=>cout);end fd1;五过程性截图六、仿真结果(图2)一位二进制全加器仿真结果七、分析结果与总结由图2,本实验的目标已达成,及通过编写VHDL语言实现一个一位二进制全加器。

VHDL语言与FPGA设计实验报告

VHDL语言与FPGA设计实验报告

VHDL语言与FPGA设计实验报告一、实验目的本实验的目的是通过学习VHDL语言和FPGA设计,掌握基本的VHDL语法和FPGA设计方法,能够独立完成简单的数字电路系统设计。

二、实验原理和方法1.VHDL语言简介VHDL是Very High Speed Integrated Circuit HardwareDescription Language的缩写,是一种用于数字电路的硬件描述语言。

VHDL语言可以描述电路的行为和结构,通过编写VHDL代码可以实现数字电路的功能。

在本实验中,我们将使用VHDL语言来描述数字电路的功能。

2.FPGA设计FPGA是Field-Programmable Gate Array的缩写,是一种可编程逻辑器件。

通过FPGA芯片上的可编程逻辑资源,我们可以将VHDL代码烧录到FPGA芯片中,实现我们所需的数字电路功能。

在本实验中,我们将使用FPGA来实现我们设计的数字电路。

三、实验步骤1.熟悉VHDL语言的基本语法和常用关键字。

2.使用VHDL语言编写一个简单的数字电路的描述,例如一个全加器。

3. 使用Xilinx ISE软件创建一个新的工程,并将VHDL代码添加到工程中。

4.根据设计要求,在ISE中进行逻辑综合和布线。

6.检验数字电路的功能。

7.编写实验报告,总结实验过程和结果。

四、实验结果和分析五、实验心得通过本实验,我学到了VHDL语言的基本语法和FPGA设计的基本步骤。

我了解到VHDL语言可以描述数字电路的功能,并通过FPGA芯片来实现这些功能。

在实验过程中,我遇到了一些问题,例如VHDL语法的错误和逻辑综合的问题,但通过与同学和老师的讨论,我成功解决了这些问题。

这次实验让我更深入地理解了数字电路的设计过程,并提高了我解决问题的能力。

综上所述,通过本实验,我成功地掌握了VHDL语言和FPGA设计的基本原理和方法,并能够独立完成简单的数字电路系统设计。

这对我今后的学习和工作有很大的帮助。

VHDL实验报告

VHDL实验报告

VHDL实验报告专⽤集成电路实验报告13050Z011305024237刘德⽂实验⼀开发平台软件安装与认知实验实验内容1、本实验以三线⼋线译码器(LS74138)为例,在Xilinx ISE 9、2软件平台上完成设计电路得VHDL⽂本输⼊、语法检查、编译、仿真、管脚分配与编程下载等操作。

下载芯⽚选择Xilinx公司得CoolRunner II系列XC2C256-7PQ208作为⽬标仿真芯⽚。

2、⽤1中所设计得得三线⼋线译码器(LS74138)⽣成⼀个LS74138元件,在XilinxISE 9。

2软件原理图设计平台上完成LS74138元件得调⽤,⽤原理图得⽅法设计三线⼋线译码器(LS74138),实现编译,仿真,管脚分配与编程下载等操作。

源程序:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE。

STD_LOGIC_ARITH。

ALL;use IEEE、STD_LOGIC_UNSIGNED。

ALL;-- Unment the following lines to usethedeclarations that are-—provided for instantiatingXilinx primitive ponents、——library UNISIM;-—use UNISIM。

VComponents。

all;entity ls74138 isPort ( g1 : in std_logic;g2 : in std_logic;inp: in std_logic_vector(2 downto0);y : out std_logic_vector(7 downto 0));end ls74138;architecture Behavioral of ls74138 isbeginprocess(g1,g2,inp)beginif((g1 and g2)=’1’) thencase inp iswhen "000"=>y〈=”00000001";when ”001"=〉y〈="00000010";when"010"=>y〈="00000100";when "011”=〉y〈="00001000";when ”100”=>y〈="00010000”;when”101”=〉y<=”00100000";when "110"=〉y<="01000000";when "111”=>y<="10000000";when others=>y〈=”";endcase;elsey<="";end if;end process;end Behavioral;波形⽂件:⽣成元器件及连接电路思考:有程序可以瞧出,定义了三个输⼊端,⼀个输出端。

vhdl实验

vhdl实验

目录第一部分实验思路 (2)第二部分问题和解决方案 (3)第三部分技术的认识 (3)第四部分课程的建议 (4)第五部分程序源代码 (4)--实验二(8位可逆计数器) (4)--实验三(任意整数分频电路设计) (6)--实验四(多功能循环彩灯控制电路设计) (7)--实验五(8段数码管动态扫描显示控制) (9)--实验六(频率计设计) (13)--实验七(矩阵式键盘扫描与键码检测) (17)--实验八(LPM的使用) (20)--实验九(多功能电子钟设计) (20)--实验十(SPI总线时序模拟) (29)第一部分实验思路1.1实验二(8位可逆计数器)分两个进程,一个记录手动脉冲个数,另一个记录脉冲源脉冲个数,最后以方式选择开关决定显示哪个个数。

1.2实验三(任意整数分频电路设计)分两个进程,一个记录上升沿个数,另一个纪录下降沿个数,当计数总和等于预分频数时,两个进程的标识位取反,最后将两个标识位的异或送给输出。

1.3实验四(多功能循环彩灯控制电路设计)确定四种循环方式,分别为1、3、5、7,2、4、6、8,7、5、3、1,8、6、4、2。

用case,when语句,同时计数自动加一。

1.4实验五(8段数码管动态扫描显示控制)设置一个顶层文件,三个模块文件(分频模块,计数模块,显示模块)。

分频是将20Mhz分成周期为1/100s和100us的方波。

计数是记录有多少个1/100s。

显示是以100us为步调扫描数码管以显示计数。

1.5实验六(频率计设计)设置一个顶层文件,三个模块文件(分频模块,计数模块,显示模块)。

分频是将20Mhz分成周期为1s和1ms的方波。

计数是记录在1s内待测脉冲的周期数。

显示是以1ms为步调扫描数码管以显示计数。

1.6实验七(矩阵式键盘扫描与键码检测)设立四个进程,一个完成由20Mhz到周期为10ms,100us的转换(10ms用于扫描键盘,100us 用于扫描数码管以显示键码)。

EDA技术实验报告

EDA技术实验报告

EDA技术实验报告实验⼀利⽤原理图输⼊法设计4位全加器⼀、实验⽬的:掌握利⽤原理图输⼊法设计简单组合电路的⽅法,掌握MAX+plusII 的层次化设计⽅法。

通过⼀个4位全加器的设计,熟悉⽤EDA 软件进⾏电路设计的详细流程。

⼆、实验原理:⼀个4位全加器可以由4个⼀位全加器构成,全加器的进位以串⾏⽅式实现,即将低位加法器的进位输出cout 与相邻的⾼位加法器的低位进位输⼊信号cin 相接。

1位全加器f-adder 由2个半加器h-adder 和⼀个或门按照下列电路来实现。

半加器h-adder 由与门、同或门和⾮门构成。

四位加法器由4个全加器构成三、实验内容:1. 熟悉QuartusII 软件界⾯,掌握利⽤原理图进⾏电路模块设计的⽅法。

QuartusII 设计流程见教材第五章:QuartusII 应⽤向导。

2.设计1位全加器原理图(1)⽣成⼀个新的图形⽂件(file->new->graphic editor )(2)按照给定的原理图输⼊逻辑门(symbol ->enter symbol)COCO 1S 2S 3S 4(4)为管脚和节点命名:在管脚上的PIN_NAME处双击⿏标左键,然后输⼊名字;选中需命名的线,然后输⼊名字。

(5)创建缺省(Default)符号:在File菜单中选择Create Symbol Files for Current File项,即可创建⼀个设计的符号,该符号可被⾼层设计调⽤。

3.利⽤层次化原理图⽅法设计4位全加器(1)⽣成新的空⽩原理图,作为4位全加器设计输⼊(2)利⽤已经⽣成的1位全加器的缺省符号作为电路单元,设计4位全加器的原理图.4.新建波形⽂件(file->new->Other Files->Vector Waveform File),保存后进⾏仿真(Processing ->Start Simulation),对4位全加器进⾏时序仿真。

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

硬件描述语言实验附录姓名:xxx学号:xxx指导教师:xxx目录硬件描述语言实验附录 (1)实验1.三输入与门电路实验 (2)实验2. 三—八译码器实验 (3)实验3. D触发器实验 (4)实验4. 分频器实验 (5)实验5. 状态机实验 (8)实验1.三输入与门电路实验--三输入与门电路threeinput--姓名:王定--学号:1306034248--中北大学LIBRARY IEEE; --调用库USE IEEE.STD_LOGIC_1164.ALL;--库文件--------------------------------------------------------------ENTITY threeinput IS --定义实体名,其名称必须与VHDL文本文件名称相同PORT( A: IN STD_LOGIC; --输入端口,时钟输入B: IN STD_LOGIC; --输入端口,个位写入使能C: IN STD_LOGIC; --输入端口,十位写入使能CO: OUT STD_LOGIC); --输出端口,溢出标志END ENTITY threeinput; --结束端口定义--------------------------------------------------------------ARCHITECTURE RTL OF threeinput IS--定义结构体BEGINPROCESS(A,B,C) IS --开始,必须带上BEGINCO<=A AND B AND C ;END PROCESS;END ARCHITECTURE RTL; --结束结构体表1. 三输入与门电路VHDL实验代码图1. 三输入与门电路仿真波形图,A,B,C输入,CO输出实验2. 三—八译码器实验--王定--2015年11月25日--3线-8线译码器LIBRARYIEEE; --调用库USEIEEE.STD_LOGIC_1164.ALL; --库文件-------------------------------------------------------------ENTITYthreetoeightISPORT(DA TAIN:INSTD_LOGIC_VECTOR(2DOWNTO0);--数据输入DA TAOUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0));--数据输出ENDENTITYthreetoeight; --结束实体-------------------------------------------------------------ARCHITECTUREBEHA VEOFthreetoeightIS--结构体BEGIN --不能漏掉PROCESS(DATAIN) --数据输入BEGIN --开始,不能漏掉CASEDATAINIS --情况判定WHEN"000"=>DA TAOUT<="00000001";WHEN"001"=>DA TAOUT<="00000010";WHEN"010"=>DA TAOUT<="00000100";WHEN"011"=>DATAOUT<="00001000";WHEN"100"=>DA TAOUT<="00010000";WHEN"101"=>DA TAOUT<="00100000";WHEN"110"=>DATAOUT<="01000000";WHEN"111"=>DA TAOUT<="10000000";WHENOTHERS=>null;ENDCASE;ENDPROCESS;ENDBEHA VE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder_3_to_8 ISPORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC;y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END decoder_3_to_8;ARCHITECTURE rtl OF decoder_3_to_8 ISSIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0);BEGINindata <= c & b & a;PROCESS (indata,g1,g2a,g2b)BEGINIF (g1 = '1' AND g2a = '0' AND g2b = '0' ) THENCASE indata ISWHEN "000" => y <= "11111110";WHEN "001" => y <= "11111101";WHEN "010" => y <= "11111011";WHEN "011" => y <= "11110111";WHEN "100" => y <= "11101111";WHEN "101" => y <= "11011111";WHEN "110" => y <= "10111111";WHEN "111" => y <= "01111111";WHEN OTHERS=>y<= "XXXXXXXX";END CASE;ELSEY <= "11111111";END IF;END PROCESS;END rtl;表2. 三—八译码器VHDL实验代码图2. 三—八译码器仿真波形图--异步复位/置位的D触发器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dff3 ISPORT(clk,d,clr,pset:IN STD_LOGIC;q : OUT STD_LOGIC);END dff3;ARCHITECTURE rtl OF dff3 ISBEGINPROCESS (clk,pset,clr)BEGINIF (pset='0') THENq<='1';ELSIF (clr='0') THENq<='0';ELSIF (clk'EVENT AND clk='1') THENq<=d;END IF;END PROCESS ;END rtl; --同步复位的D触发器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY dff4 ISPORT(clk,d,clr:IN STD_LOGIC;q : OUT STD_LOGIC );END dff4;ARCHITECTURE rtl OF dff4 ISBEGINPROCESS (clk)BEGINIF (clk'EVENT AND clk='1') THENIF (clr='0') THENq<='0';ELSEq<=d;END IF;END IF;END PROCESS ;END rtl;表3. 异步和同步D触发器VHDL实验代码图3. 异步触发器仿真波形图图4. 同步触发器仿真波形图--四分频器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;----------------------------------------------ENTITY clk_div ISPORT(clk: IN STD_LOGIC;--时钟输入clk_div2: OUT STD_LOGIC;clk_div4: OUT STD_LOGIC;clk_div8: OUT STD_LOGIC;clk_div16: OUT STD_LOGIC);END ENTITY clk_div;---------------------------------------------------ARCHITECTURE rtl OF clk_div ISSIGNAL count:STD_LOGIC_VECTOR(3 DOWNTO 0);--定义一个四位的信号BEGINPROCESS(clk)BEGINIF(clk' event AND clk ='1') THEN--上升沿到来IF (count="1111") THEN--达到最大计数值count<="0000"; --置零ELSEcount<=count+1; --计数END IF;END IF;END PROCESS;clk_div2<=count(0); --2分频clk_div4<=count(1); --4分频clk_div8<=count(2); --8分频clk_div16<=count(3); --16分频END rtl;表4. 四分频器VHDL实验代码图5. 四分频器仿真波形图TMP1<= '0'; --置0,带入语句滞后ELSETMP1<= '1'; --置1END IF;END IF;END IF;END PROCESS;---------------------------------------------PROCESS(CLKIN,RST)BEGINIF RST ='1'THEN --复位有效COUNT2 <= "00000000"; --立即清零TMP2<= '1';ELSIF CLKIN'EVENT AND CLKIN='0' THEN --下降沿到来IF COUNT2 = "00000100" THEN --100==4(5个数据)COUNT2 <= "00000000";ELSECOUNT2 <= COUNT2 + 1;IF COUNT2 < "00000010" THEN --10==2(三个下降沿),小于三个上升沿时,始终置0,三个下降沿对应6分频TMP2<= '1';ELSETMP2<= '0';END IF;END IF;END IF;END PROCESS;END RTL;--信号是等待整个进程结束完后,再赋值图6. 五分频器仿真波形图实验5. 状态机实验ST <= S3; END IF; OP <= '1'; WHEN S3=> IF X = '0' THEN ST <= S3; ELSE ST <= S0; END IF; OP <= '0'; END CASE; END IF; END PROCESS STATE_COMP;END ARCHITECTURE A;END IF; END CASE; END IF;END PROCESS state_comp; END a;表6. moore 与mealy 状态机VHDL 实验代码图7. moore 型状态机VHDL 实验代码图8. mealy 型状态机仿真波形图。

相关文档
最新文档