实验15 VHDL多路复用器与比较器的设计与仿真

合集下载

VHDL多路波形发生器实验报告

VHDL多路波形发生器实验报告

VHDL多路波形发生器实验报告一、基本要求:1、对输入时钟信号进行分频,实现三路互差120°的信号。

2、实现输出信号的占空比控制clk: 输入时钟信号reset: 同步复位信号(低电平有效)div: 输入分频控制信号(注意:6n分频)ctrl: 占空比控制信号ctrl=1时, 占空比为1:1ctrl=2时, 占空比为1:2ctrl=3时, 占空比为2:1A,B,C: 三路输出信号二、设计思路:1.实验为6n分频,用变量s来控制,0~6n-1这六个数,当时钟信号每来一个上升沿时加1,当为6n-1时清零;2.定义N为常量,通过改变N的值改变分频;3.ctrl值不同时,占空比不同,用case语句控制,ctrl分别为01,10,11和其他;4.具体波形的实现用if语句,当占空比为1时,A输出信号在s=0和s=3*n时翻转,B输出信号在s=2*n和s=5*n时翻转,C输出信号在s=4*n和s=n的时候翻转。

当占空比为1:2时,A输出信号在s=0和s=2*n时翻转,B输出信号在s=2*n和s=4*n时翻转,C输出信号在s=4*n和s=0的时候翻转。

当占空比为2:1时,A输出信号在s=0和s=4*n时翻转,B输出信号在s=2*n和s=0时翻转,C输出信号在s=4*n和s=2*n的时候翻转;5.在占空比为1和1:2时,C输出信号应比B慢120度,但是实际输出超前B,所以要对C输出进行反相;同理,在占空比为2:1时,要对B、C分别进行反向。

6.用if语句判断是否复位,若非,则执行case语句。

三、流程图:四、源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity top isport(clk,reset:in std_logic;ctrl:in std_logic_vector(1 downto 0);A,B,C:out std_logic);end top ;architecture rel of top issignal temp1,temp2,temp3,temp4,temp5 : std_logic; constant N: integer:=1;signal s:integer range 0 to 6*N-1 ;beginprocess(clk,reset,ctrl)beginif (reset='0') thentemp1<='0';temp2<='0';temp3<='0';temp4<='0';temp5<='0';s<=0;elsecase ctrl iswhen "01"=>if (clk 'event and clk='1') thenif s=6*N-1 thens<=0;elses <= s+1;end if;if s=0 thentemp1<= not temp1;end if;if s=3*N thentemp1<= not temp1;end if;if s=2*N thentemp2<= not temp2;end if;if s=5*N thentemp2<= not temp2;end if;if s=4*N thentemp4<= not temp4;end if;if s=N thentemp4<= not temp4;end if;end if;temp3<= not temp4;when "10"=>if (clk 'event and clk='1') thenif s=6*N-1 thens<=0;elses <= s+1;end if;if s=0 thentemp1<= not temp1;end if;if s=2*N thentemp1<= not temp1;end if;if s=2*N thentemp2<= not temp2;end if;if s=4*N thentemp2<= not temp2;end if;if s=4*N thentemp4<= not temp4;end if;if s=0 thentemp4<= not temp4;end if;end if;temp3<= not temp4;when "11"=>if (clk 'event and clk='1') thenif s=6*N-1 thens<=0;elses <= s+1;end if;if s=0 thentemp1<= not temp1;end if;if s=4*N thentemp1<= not temp1;end if;if s=2*N thentemp5<= not temp5;end if;if s=0 thentemp5<= not temp5;end if;if s=4*N thentemp4<= not temp4;end if;if s=2*N thentemp4<= not temp4;end if;end if;temp2<= not temp5;temp3<= not temp4;when others=>temp1<='0';temp2<='0';temp3<='0';end case;end if;end process;A<=temp1;B<=temp2;C<=temp3;end rel;五、仿真波形:整体波形:当ctrl=1 当ctrl=2 当ctrl=3复位当ctrl=其他:六、实验过程遇到的问题:在程序设计时,开始不知该怎样使A,B,C互差120度,开始是想通过定义一个变量,每来一个上升沿加1,从0开始,A路信号除3n 取余为0则翻转,B路信号除3n取余为1则翻转,C路信号除3n取余为2则翻转,我觉得这样的想法应该没有错,可是实际却调不出来,可能是某处逻辑有问题,后来就模仿老师给的6分频程序,设计了现在的程序。

VHDL与数字电路设计实验报告

VHDL与数字电路设计实验报告

VHDL与数字电路设计实验报告引言本实验旨在通过使用VHDL编程语言和数字电路设计技术,实现特定功能的电路设计。

本文档将对实验的步骤、设计原理和结果进行详细描述。

实验步骤1. 步骤一:熟悉VHDL编程语言在实验开始之前,团队成员对VHDL编程语言进行了研究和熟悉。

我们了解了VHDL的基本语法、数据类型和结构,并获得了对VHDL设计原理的初步理解。

2. 步骤二:设计功能电路在本实验中,我们选择了一个特定的功能电路进行设计。

我们首先进行了功能需求分析,并根据需求确定了电路的输入输出信号以及主要的逻辑运算。

然后,我们使用VHDL编程语言将电路的逻辑运算实现为代码,并进行了仿真和测试。

3. 步骤三:电路仿真和验证为了验证我们设计的电路功能的正确性,我们使用了VHDL仿真工具进行了电路的仿真和验证。

我们根据输入信号的不同组合,观察输出信号的变化,并与我们预期的结果进行比较。

通过这一步骤,我们确认了我们设计的电路能够按照预期工作。

4. 步骤四:电路实现和测试在确认电路的设计和仿真结果无误之后,我们进一步将电路实现到实际的数字电路平台上,并进行了硬件测试。

我们使用实际的输入信号来测试电路的性能和稳定性,并对输出信号进行观察和分析。

通过这一步骤,我们验证了电路在实际环境中的可行性。

设计原理我们设计的电路基于特定的功能需求,采用了经典的数字电路设计原理。

通过使用VHDL编程语言,我们将电路的逻辑运算实现为逻辑门和触发器的组合。

通过将输入信号连接到适当的逻辑门和触发器,我们实现了所需的功能。

结果与分析经过实验步骤的完成,我们成功地设计和实现了一个具有特定功能的数字电路。

在仿真测试和实际测试中,电路都表现出了良好的性能和稳定性。

根据结果的分析,我们验证了电路的设计原理和逻辑的正确性。

结论本实验通过使用VHDL编程语言和数字电路设计技术,成功地实现了一个具有特定功能的电路设计。

我们的实验结果表明,VHDL和数字电路设计技术在电路设计领域具有重要的应用价值。

实验五--4选1多路复用器和4位比较器设计与仿真

实验五--4选1多路复用器和4位比较器设计与仿真

实验五 4选1多路复用器和4位比较器设计与仿真班级信息安全一班姓名邓一蕾学号2指导老师袁文澹一、实验目的1.熟悉QuartusⅡ仿真软件的基本操作,并用VHDL语言和逻辑图设计四选一多路选择器,4位比较器。

二、实验内容1.参照芯片74LS153的电路结构,用逻辑图和VHDL语言设计四选一多路复用器;2.从QuartusⅡ中取7485器件(比较器)进行仿真与分析;用VHDL语言设计4位比较器,接着进行仿真与分析,电路逻辑结构参照芯片74x85三.实验原理1.(1)四选一多路选择器逻辑电路的原理4选1多路选择器,GN为使能端,AB为选择通道控制端,c0,c1,c2,c3为数据输入端.Y为输出端。

当GN为1时,y=0;当GN为0,AB=00时,Y为c0的值;当GN为0,AB=01时,Y为c1的值;当GN为0,AB=10时,Y为c2的值;当GN为0,AB=11时,Y为c3的值;(2)通过实验实现逻辑的原理2.(1)4位比较器的逻辑电路图A0,B0,A1,B1,A2,B2,A3,B3为相比较数输入端,ALBI,AEBI,AGBI为级联输入端ALBO,AEBO,AGBO为比较输出端。

2)通过实验实现逻辑的逻辑功能表为四、实验方法与步骤实验方法:采用基于FPGA进行数字逻辑电路设计的方法。

采用的软件工具是QuartusII软件仿真平台,采用的硬件平台是Altera EPF10K20TI144_4的FPGA试验箱。

1.4选1多路选择器实验步骤:编写源代码。

打开QuartusⅡ软件平台,点击File中得New建立一个文件。

编写的文件名与实体名一致,点击 as以“.vhd”为扩展名存盘文件。

2、按照实验箱上FPGA的芯片名更改编程芯片的设置。

操作是点击Assign/Device,选取芯片的类型。

建议选“Altera的EPF10K20TI144_4”3、编译与调试。

确定源代码文件为当前工程文件,点击Complier进行文件编译。

实验四 多路复用器与比较器的设计与仿真

实验四 多路复用器与比较器的设计与仿真

实验四多路复用器与比较器的设计与仿真一、实验目的:实现多路复用器与比较器的设计与仿真。

二、实验内容1.用逻辑图设计四选一多路复用器,再用VHDL语言设计参数化的多路复用器;2.用逻辑图设计7485比较器,再用VHDL语言设计4位比较器。

8-3优先编码器。

三、实验步骤。

(一)、多路复用器、7485比较器的逻辑图及逻辑表达式。

1.多路复用器:逻辑框图:逻辑图:2.7485比较器:逻辑框图:逻辑图:(二)用VHDL语言设计多路复用器、7485比较器。

1.多路复用器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY duolu ISPORT(a: IN STD_LOGIC_VECTOR(1 DOWNTO 0);c0,c1,c2,c3: IN STD_LOGIC;y : OUT STD_LOGIC);END duolu;ARCHITECTURE arch OF duolu ISBEGINwith A select y<=c0 WHEN "00" ,c1 WHEN "01" ,c2 WHEN "10" ,c3 WHEN "11" ,'0' WHEN OTHERS ;END arch;2.7485比较器:library ieee;use ieee.std_logic_1164.all;entity bijiaoqi isport(agbl,albl,aebl:in std_logic;a0,a1,a2,a3:in std_logic;b0,b1,b2,b3:in std_logic;albo,aebo,agbo:out std_logic);end bijiaoqi;architecture bhv of bijiaoqi isbeginprocess(albl,aebl,agbl,a0,a1,a2,a3,b0,b1,b2,b3)beginif(a3>b3)thenagbo<='1';albo<='0';aebo<='0';else if(a3<b3) thenagbo<='0';albo<='1';aebo<='0';else if(a3=b3 and a2>b2 )thenagbo<='1';albo<='0';aebo<='0';else if(a3=b3 and a2<b2 )thenagbo<='0';albo<='1';aebo<='0';else if(a3=b3 and a2=b2 and a1>b1)thenagbo<='1';albo<='0';aebo<='0';else if(a3=b3 and a2=b2 and a1<b1)thenagbo<='0';albo<='1';aebo<='0';else if(a3=b3 and a2=b2 and a1=b1 and a0>b0)thenagbo<='1';albo<='0';aebo<='0';else if(a3=b3 and a2=b2 and a1=b1 and a0<b0)thenagbo<='0';albo<='1';aebo<='0';else if(a3=b3 and a2=b2 and a1=b1 and a0=b0 and aebl='1')then agbo<='0';albo<='0';aebo<='1';else if(a3=b3 and a2=b2 and a1=b1 and a0=b0 and agbl='1' and albl='0'and aebl='0')thenagbo<='1';albo<='0';aebo<='0';else if(a3=b3 and a2=b2 and a1=b1 and a0=b0 and agbl='0' and albl='1'and aebl='0')thenagbo<='0';albo<='1';aebo<='0';else if(a3=b3 and a2=b2 and a1=b1 and a0=b0 and agbl='1' and albl='1'and aebl='0')thenagbo<='0';albo<='0';aebo<='0';else if(a3=b3 and a2=b2 and a1=b1 and a0=b0 and agbl='0' and albl='0'and aebl='0')thenagbo<='1';albo<='1';aebo<='0';end if;end if;end if;end if;end if;end if;end if;end if;end if;end if;end if;end if;end if;end process;end bhv;四、实验仿真结果。

比较器的设计与实现实验报告

比较器的设计与实现实验报告

比较器的设计与实现实验报告一、实验目的1.学习常用组合逻辑的可综合代码的编写;2.学习VHDL语言的编程思想与调试方法;3.学习通过定制LPM原件实现逻辑设计,通过波形仿真及硬件试验箱验证设计的正确与否。

4.设计一个能实现两个二位数大小的比较电路并实现利用LPM原件实现。

二、实验原理1.功能设A2、A1、B2、B1为输入端,F1、F2、F3为输出端,设A=A2A1。

B=B2B1(A2A1,B2B1表示两位二进制数)。

当A >B时,F1为1,F2、F3为0;当A<B时,F2为1,F1、F3为0;当A=B时,F3为1,F1、F2为0。

2.实现1)VHDL实现系统的VHDL设计通常采用层次化的设计方法,自顶向下划分系统功能并逐层细化逻辑描述。

VHDL 实体功能的描述可分为结构式、行为式和寄存器传输级(Register Transfer Level, RTL)描述三种。

此次实验结构比较简单,采用寄存器传输级描述的实现方式,选用并行信号赋值语句。

2)LPM实现参数化模板库(Library Parameterized Modules, LPM)提供了一系列可以参数化定制的逻辑功能模块。

采用LPM设计方法的主要优势在于设计文件与器件结构无关、高效布线和通用性三方面。

三、实验内容1.VHDL实现新建VHDL文件,输入以下代码说明:当VHDL设计电路反馈时,应将端口声明为buffer端口,而不是out端口。

若out端口需要反馈至电路内部时,常使用signal去实现反馈。

查看波形仿真网格参数设置:Simulation mode: Functional;End time: 2 us;Gride size: 100 ns;信号说明:a2a1和b2b1为二位二进制输入信号;f1f2f3 为三位二进制输出信号;数据信号参数设置:a2a1: Count Value→Counting→Increment by:01Count Value→Timing→Count every:400.0ns b2b1: Count Value→Counting→Increment by:01Count Value→Timing→Count every:100.0ns 管脚绑定:下载测试:程序下载完成后,由于管脚86、87、88、89均为关闭状态,即A、B输入均为00,f1f2f3输出为010,故只有管脚41所对应的二极管亮。

基于VHDL语言的数据比较器和译码器的设计PPT学习教案

基于VHDL语言的数据比较器和译码器的设计PPT学习教案
➢ VHDL语言具有良好的可读性,既可以被计算机接受,也 容易被人们所理解;
➢ VHDL语言可以与工艺无关编程; ➢ VHDL语言已做为一种IEEE的工业标准,便于使用、交流
和推广。
VHDL语言的不足之处
➢ 设计的最终实现取决于针对目标器件的编程器,工具的不同 会导致综合质量不一样。
第4页/共15页
WHEN OTHERS=>NULL;
END CASE;
END IF;
END IF;
DOUT<=TMP;
END PROCESS;
第6页/共15页
END ARCHITECTURE ART;
quartus ‖软件的基本使用方法
➢ 新建工程:FILE→New Project Wizard(实体名要和工程名一致) ➢ 新建文件:在当前工程下File →New 选择VHDL File,然后将程序输入,输入完成之后保存文
件FILE →Save AS 输入与实体名一致的文件名 ➢ 编译:首先要分配器件Assignments →Device 在Device family下选择CycloneⅢ系列的芯片;然
后双击左边小窗口的task栏下的Compile Design或者是点击快捷栏上的红色三角型按钮,等待 编译报告,如果有编译不成功有错误则需要检查并修改程序,然后保存并再次编译直至编译 无误 ➢ 仿真:分为时序和功能仿真;先功能仿真Processing →Simulator Tool →Simulation mode: functional →Generate Functional Simulation Netlist成功之后,File →New →Vector Waveform File 然后在空白处右击Insert →Insert Node or Bus将所用的管脚依次添加进去,再给输入管脚赋值, 然后保存(注意:文件名也要和实体名一致) Processing →Start Simulation,观察仿真报告及仿真结果。

VHDL仿真报告

VHDL仿真报告

VHDL仿真报告VHDL 仿真报告⼀、⼩组成员:徐瑞邯 04083052 张琨 04083063 李勋 04083023⼆、所选题⽬:(程序见压缩包,某些波形cp 周期较长,缩⼩尺度后仍可看到整个周期)徐瑞邯:74LS169和4选1MUX 组成的模四加减计数器(6-40b):clk ld pt uddata[3..0]q[3..0]d[3..0]s[1..0]y11q[3..0]clkcount169:count169_n2' h0 --mux4_1:mux4_1_n2' h3 --x波形如下:张琨:波形发⽣器(波形如下)(6-38(1)):李勋:0100111序列检测器(6-41):(两种⽅法)波形如下:三、所提问题及部分解答:徐瑞邯的问题:1、如何在RTL Viewer中显⽰每个端⼝,⽽不是以⽮量位型显⽰?(效果如图所⽰)答:把⽮量型数据转化为位型数据,例如可以把q换成q0 q1 q2 q3,但是会增加程序的复杂度,特别是在count_mux中例化元件时,会增加很多端⼝的例化,个⼈认为如果为了看清具体线路连接,可以做此修改(⼯程见压缩包),如果只是为了实现功能,则没有必要修改。

2、时钟信号⽤程序能否⾃动产⽣?答:在ModelSim 中可以⽤wait for产⽣时钟信号程序如下clock:processbeginwait for 10 ns;clk<=not clk;end process clock;⽽在Quartus II中wait for 只能⽤于仿真,不能出现在实体的进程中。

⽬前是在波形输⼊中⼿动加⼊时钟信号,如果把波形输⼊⽂件导出为vht⽂件(T est Bench)时,可以看出其中有上述语句。

3、若端⼝未赋初始值,该如何使系统正常运⾏?答:ModelSim 中对于没有赋初始值的端⼝⾃动赋’U’,所以在有反馈的电路中不能直接给反馈接收端⼝赋值,否则反馈接收端⼝(⼀般有初始值)也会变成’U’,从⽽影响加⼊CP后的功能。

基于VHDL的数值比较器、数据选择器、移位寄存器、60进制计数器、复杂ALU设计实验报告

基于VHDL的数值比较器、数据选择器、移位寄存器、60进制计数器、复杂ALU设计实验报告

基于VHDL的数值比较器、数据选择器、移位寄存器、60进制计数器、复杂ALU设计实验报告VHDL实验报告班级:电子学号:姓名:2014/5/23Experiment 1 两位二进制数的大小比较器一、实验目的:(1)熟悉QuartusII的开发环境、熟练掌握编程开发流程。

(2)学习VHDL的基本语法及编程设计。

二、实验内容:数值比较器设计三、实验要求:(1)熟练掌握QuartusII开发环境下对可编程逻辑器件进行程序化设计的整套流程;2)设计输入使用插入语言模板(Insert Template); ((3)在QuartusII开发环境下对设计程序进行时序仿真,将生成的配置文件下载到实验板,进行最终的实物测试验证。

四、实验原理:根据两位二进制数的大小得到对应的比较结果,其电路示意图及电路特性表为: 比较器特性表A B In_s In_l In_e 比较器电路示意图YsYe YlY A > B × × × 0 0 1A[3:0] Yl Number B[3:0] A < B × × × 1 0 0 Ye A = B 0 1 0 0 0 1 In_sYs Comparer In_l A = B 1 0 0 1 0 0 In_e A = B 0 0 1 0 1 0 A = B 0 0 0 × × × A = B × 1 1 × × × A = B 1 × 1 × × × A = B 1 1 × × × ×五、程序编写、调试及仿真(芯片型号:MAX?系列EPM1270T144C5) (1)程序编写:library ieee;use ieee.std_logic_1164.all;2entity Vhdl1 isport(a,b:in std_logic_vector(3 downto 0);ins,inl,ine: in std_logic;ys,ye,yl: out std_logic);end Vhdl1;architecture one of Vhdl1 issignal temps,tempe:std_logic; beginys<=temps;ye<=tempe;yl<=temps nor tempe;process(a,b,ine)beginif (a=b and ine='1')thentempe<='1';elsetempe<='0';end if;end process;process(a,b,ins)beginif(a<b) thentemps<='1';elsif(a=b and ins='1') then temps<='1';elsetemps<='0';end if;end process;end one;(2)功能仿真:3(3)芯片引脚设定:(4)适配下载结果六、结果分析本实验实现了两位二进制数的比较。

实验五 4选1多路复用器和4位比较器设计与仿真

实验五  4选1多路复用器和4位比较器设计与仿真

实验五 4选1多路复用器和4位比较器设计与仿真班级信息安全一班姓名邓一蕾学号201208060106指导老师袁文澹一、实验目的1.熟悉QuartusⅡ仿真软件的基本操作,并用VHDL语言和逻辑图设计四选一多路选择器,4位比较器。

二、实验内容1.参照芯片74LS153的电路结构,用逻辑图和VHDL语言设计四选一多路复用器;2.从QuartusⅡ中取7485器件(比较器)进行仿真与分析;用VHDL语言设计4位比较器,接着进行仿真与分析,电路逻辑结构参照芯片74x85三.实验原理1.(1)四选一多路选择器逻辑电路的原理4选1多路选择器,GN为使能端,AB为选择通道控制端,c0,c1,c2,c3为数据输入端.Y 为输出端。

当GN为1时,y=0;当GN为0,AB=00时,Y为c0的值;当GN为0,AB=01时,Y为c1的值;当GN为0,AB=10时,Y为c2的值;当GN为0,AB=11时,Y为c3的值;(2)通过实验实现逻辑的原理2.(1)4位比较器的逻辑电路图A0,B0,A1,B1,A2,B2,A3,B3为相比较数输入端,ALBI,AEBI,AGBI为级联输入端ALBO,AEBO,AGBO为比较输出端。

2)通过实验实现逻辑的逻辑功能表为四、实验方法与步骤实验方法:采用基于FPGA进行数字逻辑电路设计的方法。

采用的软件工具是QuartusII软件仿真平台,采用的硬件平台是Altera EPF10K20TI144_4的FPGA试验箱。

1.4选1多路选择器实验步骤:编写源代码。

打开QuartusⅡ软件平台,点击File中得New建立一个文件。

编写的文件名与实体名一致,点击File/Save as以“.vhd”为扩展名存盘文件。

2、按照实验箱上FPGA的芯片名更改编程芯片的设臵。

操作是点击Assign/Device,选取芯片的类型。

建议选“Altera的EPF10K20TI144_4”3、编译与调试。

确定源代码文件为当前工程文件,点击Complier进行文件编译。

VHDL三八译码器和多路复用器的仿真

VHDL三八译码器和多路复用器的仿真

数字电路课程设计实验报告实验名称:实验二(译码器和多路复用器)实验日期:2014年4月21日小组序号:5号实验人员姓名:谭文(组长)学号:2012059020014阿卜杜凯尤木(组员)学号:2012059020001邓广源(组员)学号:2012059020002杨仕杰(组员)学号:2012059020016 辅导老师:周鹰一:实验内容该试验共包含两部分,第一部分为译码器喷水阀控制器设计,第二部分为多路复用器计算机数据总线设计。

实验过程分为两部分第一部分设计指导;第二部分独立设计。

第一部分:喷水阀控制器设计自动草坪洒水系统控制水阀的开与关。

自动洒水系统必须支持几个不同的区域,如后院,左边右边院子等。

一次只打开一个区域的阀门开关以保证在喷淋区有足够的水压。

在设计中设计一个支持多达8个区域的喷水系统。

请注意,一个典型的自动喷水系统由一个小微控制器(单片机)控制,它设定一个程序只在一天的特定时间特定时段打开或关闭某个阀,该系统也提供了一个禁用所有阀门的装置。

第二部分:电脑数据总线设计在这项任务中,将在数据总线单总线中设计一个4×1多路复用器将控制数据流,并研究其基本性质。

该技术可以实现,例如,部分串行通信与多个外围设备只使用一个微控制器输出引脚。

二、分析与设计实验一:通过设计一个三八译码器来实现题目要求(通过原理图和代码编写两种输入方式)假设一个处理器仅有四个输出引脚来,那它可以(用“使能”开关)控制3x8译码器工作。

图2.自动草坪洒水系统连接单片机有一个引脚说明系统是否有效(启用)和其他三个引脚表明二进制数的一个阀门被打开。

该系统是一个组合逻辑电路,4个输入:E(使能端)和A,B,C(有效区域内的的二进制值),和8个输出d7,……,d0(阀控制值)。

实验二:设计一个多路复用器的简单模型研究基本性质。

(通过原理图和代码编写两种输入方式)三、实验过程记录实验一:38译码器的设计(1)采用原理图方法进行仿真1.1由实验开始时的分析可以初步得到3x8译码器的原理图,并在Xilinx ISE上进行仿真1.2在初步对仿真电路进行检查后,确认没有问题,进行仿真。

VHDL仿真

VHDL仿真


VHDL 中有两类延时模型能用于行为仿真建模: 固有延时和 但是,在 但是,在VHDL VHDL中有两类延时模型能用于行为仿真建模: 中有两类延时模型能用于行为仿真建模:固有延时和 。( 仅用于仿真,不被综合 )。 传输延时 传输延时。( 。(仅用于仿真,不被综合 仅用于仿真,不被综合)。
5
延时模型
14
测试基准

21:23
检查模型的输出信号 例2也可以使用输出信号: Process(out_model, in_model) Begin if out_model= ‘1’ and in_model= ‘1’ then out_model=‘ in_model=‘ ‘0’; test_ok<= test_ok<=‘ end if; End process;
4
延时模型
21:23
/CPLD 设计过程中,源设计文件一般不需要建立延时模型。 在FPGA FPGA/ CPLD设计过程中,源设计文件一般不需要建立延时模型。

VHDL 高级行为描述, 即使采用延时模型,也与经 FPGA 源设计采用 源设计采用VHDL VHDL高级行为描述, 高级行为描述,即使采用延时模型,也与经 即使采用延时模型,也与经FPGA 适配器布线后的结果有很大差异。 /CPLD CPLD适配器布线后的结果有很大差异。 网表文件与布线结果相同,包含详细、精确的延时信息。 VHDL VHDL网表文件与布线结果相同,包含详细、精确的延时信息。
15
三种不同类型的测试基准
21:23
VHDL 例化。因为测试基准 在通常情况下,测试基准中被测元件用结构 在通常情况下,测试基准中被测元件用结构VHDL VHDL例化。因为测试基准 entity 中包含任何的输入信号。 产生该元件的输入激励,所以测试基准不必在 产生该元件的输入激励,所以测试基准不必在entity entity中包含任何的输入信号。 VHDL 元件要用测试基准测试: 假定下面的 假定下面的VHDL VHDL元件要用测试基准测试: Library ieee; Use ieee.std_logic_1164.all; Use ieee.std_logic_unsigned.all; Entity my_comp is port(clk, reset, d_in: in std_logic; a, b: in std_logic_vector(2 downto 0); d_out, en, overflow: out std_logic ; q: out std_logic_vector(2 downto 0) ); End my_comp;

VHDL仿真

VHDL仿真

写一行到输出文件
• Writeline(行变量,数据变量);
写一个数据至行
• Write(行变量,数据变量 ; 行变量, 行变量 数据变量); • 在某些cad公司的 公司的vhdl语言版本中,对改写语 语言版本中, 在某些 公司的 语言版本中 句有些扩充。例如按十六进制写时,写语句以 句有些扩充。例如按十六进制写时, h为前缀:hwrite;如按八进制写时,则应冠以 为前缀: 如按八进制写时, 为前缀 如按八进制写时 o前缀:owrite。 前缀: 前缀 。
13.3使用ModelSim对 13.3使用ModelSim对QuartusII 使用ModelSim 设计项目进行仿真
1. QuartusII产生的仿真网表文件(.vho) 产生的仿真网表文件( 产生的仿真网表文件 ) 2. 测试向量 3. 仿真模型库,D:\altera\quartus50\eda\sim_lib目录下 仿真模型库, 目录下 xxxxx_atoms.vhd,xxxxx_components.vhd , 如果使用了Altera的宏功能模块,需要altera_mf.vhd, 的宏功能模块,需要 如果使用了 的宏功能模块 , altera_mf_components.vhd
书写格式
• Textio常用于测试向量的输入和输出。在使用 textio的包集合时,首先要进行必要的说明,例如: library std; use std.textio.all; •
在vhdl语言的标准格式中,textio只能使用“bit” 和“bit_vector”两种数据类型,如果要使用 “std_logic”和“std_logic_vector”,就要调用 “std_logic_textio”,即 use ieee.std_logic_textio.all;

EDA实验报告——比较电路设计与仿真

EDA实验报告——比较电路设计与仿真

实验四 比较电路的设计与仿真一、实验目的设计比较电路并仿真。

二、实验内容用VHDL语言和利用LPM元件实现比较电路并仿真。

三、实验方法1)实验方法:采用基于FPGA进行数字逻辑电路设计的方法。

采用的软件工具是QuartusII软件仿真平台,采用的硬件平台是Altera EPF10K20TI144_4的FPGA试验箱。

2)实验步骤:一,VHDL实现1、建立新工程。

打开QuartusII软件平台,点击File中得New Peoject Wizar的建立一个工程,为此工程建议一个目录文件,并为此工程及文件命名,命名的名字须与实体名一致。

2、按照实验箱上FPGA的芯片名更改编程芯片的设置。

操作是点击Assign/Device,选取芯片的类型,本次采用AlteraEPF10K20TI144_4。

3,为此次工程选取合适的EDA工具以及采用的合适VHDL语言。

本次实验采用Design Compiler , ModelSim_Altrea,和Custom,分别采用EDIF形式,VHDL形式,和VHDL形式4. 编写源代码。

点击File中的New,选择弹出选项框内的Design File 下的VHDL File,创建一个vhd格式文件,并输入编写的源代码。

源代码为:library IEEE;use IEEE.std_logic_1164.all;entity bijiao isport(a2,a1:in STD_LOGIC;b2,b1:in STD_LOGIC;f1,f2:buffer STD_LOGIC;f3:out STD_LOGIC);end bijiao;architecture bijiao_arch of bijiao isbeginf1<=(a2 and (not b2)) or (a1 and (not b1) and a2) or (a1 and (not b1) and (not b2));f2<=((not a2) and b2)or((not a2) and (not a1) and b1) or ((nota1) and b1 and b2);f3<=not(f1 or f2);end bijiao_arch;4、编译与调试。

第三章VHDL程序的编译与仿真

第三章VHDL程序的编译与仿真

第三章VHDL程序的编译与仿真本章导读通过本章学习,应当了解常见的VHDL编译、仿真EDA工具,认识Active-HDL 工具;学会运用Active-HDL进行简单VHDL程序的编写、编译和仿真;并在后续章节的学习过程中养成理论学习与上机实践相结合的学习习惯。

在VHDL程序设计过程中,上机编程实践是非常重要的。

通过边实践边学习的模式,能够达到事半功倍的学习效果。

因此,本书在较早的章节就引入基于Active-HDL工具的VHDL程序的编译与仿真的内容,以帮助读者更快入门。

而基于Active-HDL工具的VHDL设计录入与仿真等进阶内容将在本书的第十章详细介绍。

3.1EDA仿真工具简介常见的EDA仿真工具有Modelsim、V erilog-XL、NC-V erilog、Active-HDL、Maxplus-II等。

Active-HDL是由ALDEC公司出品的一个开放型的仿真工具。

Active-HDL 软件的开放性、可上网下载、用户界面友好和强大功能是我们选用该软件作为教学软件的原因。

Active-H DL可支持硬件描述语言、原理框图和有限状态机等多层设计输入方式,同时支持VHDL、V erilog-HDL、SystemC、SystemVerilog和EDIF网表等格式。

Active-HDL提供了HDL设计从设计输入到器件实现一系列流程集中化管理的集成系统环境,易学易用。

Active-HDL支持Verilog、VHDL以及SystemC语言混合仿真。

Active-HDL 拥有丰富的调试、纠错手段和仿真结果观察工具,设计体系探测工具大大简化了设计之中各个元素之间关系的分析与观察,设计之中的内部节点、信号、变量的值都可以在诸如波形编辑器、Watch窗口、存储器观察器以及Call Stack之中进行观察分析,代码跟踪工具以及可选择的高级断点管理工具可以很好地控制代码的执行。

Active-HDL的主界面如图3.1所示。

简易电子琴的VHDL仿真与实现

简易电子琴的VHDL仿真与实现

简易电子琴的VHDL仿真与实现设计与实现一.设计课题与任务要求:设计制作一个简易电子琴演奏器。

原理概述:根据声乐知识,产生音乐的两个因素是音乐频率的持续时间,音乐的十二平均率规定,每两个八音度之间的频率相差一倍,在两个八音度之间,又可分为12个半音。

每两个半音的频率比为4。

另外,音名A(乐谱中的低音6)的频率为440HZ,音名B到C之间,E到F 之间为半音,其余为全音。

由此能够计算出乐谱中从低音1到高音1之间每个音名的频率如下表所示。

基本要求:1、用8×8点阵显示“1 2 3 4 5 6 7”七个音符构成的电子琴键盘。

其中点阵的第一列用一个LED点亮表示音符“1”,第二列用二个LED点亮表示音符“2”,依此类推,如下图所示。

图1 点阵显示的电子琴键盘2、用BTN1~BTN7七个按键模拟电子琴手动演奏时的“1 2 3 4 5 6 7”七个音符。

当某个按键按下时,数码管显示相应的音符,点阵上与之对应的音符显示列全灭,同时蜂鸣器演奏相应的声音;当按键弹开时数码管显示的音符灭掉,点阵显示恢复,蜂鸣器停止声音的输出。

下图所示为按下BTN3按键时点阵的显示情况。

图2 按键按下后的点阵显示3、由拨码开关切换选择高、中、低音,并用数码管进行相应的显示。

4、通过按键BTN0进行复位,操纵点阵显示图1的初始状态。

提高要求:1、可通过一个拨码开关进行手动/自动演奏的切换,并与点阵显示配合增加自动演奏乐曲的功能。

2、增加手动演奏的音符存储、播放功能。

二.系统设计(包含设计思路、总体框图、分块设计)1.设计思路说明:电子琴的设计包含七个模块:弹奏模块keyplay、自动演奏模块autoplay、查表及显示模块table、分频模块fenpin、存储模块store、七段数码管显示模块seg7与点阵的显示模块lattice。

弹奏模块keyplay根据按键动作key,与高中低模式选择mode产生指示音调的index_key。

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

实验十五多路复用器与比较器的设计与仿真
一、实验内容
1.参照芯片74LS153的电路结构,在Quartus II中用逻辑图和VHDL语言设计四选一多路复用器;
2.从Quartus II中取7485器件(比较器)进行仿真与分析;用VHDL语言设计4位比较器,接着进行仿真与分析,电路逻辑结构参照芯片74x85。

二、实验要求
4选1多路复用器、比较器的逻辑表达式;
4选1多路复用器、比较器的逻辑图;
用VHDL语言设计4选1多路复用器、比较器。

三、电路功能介绍
1.74153:4选1多路复用器(4 to 1 Multiplexer),又叫4选1数据选择器
用途:可以对多个输入信号进行选择。

电视机里的频道转换开关就是一个多路开关。

逻辑框图
逻辑功能表
逻辑图
2.7485:4位大小比较器(4-Bit Magnitude Comparator)逻辑框图
逻辑功能表。

相关文档
最新文档