中衡EDA组合逻辑电路的【设计明细】

合集下载

EDA简单组合时序电路设计8分频

EDA简单组合时序电路设计8分频
奇数倍分频有两种实现方法,其中之一完全可以通过计数器来实现,如进行三分频,就可通过待分频时钟上升沿触发计数器来进行模三计数,当计数器计数到邻近值时进行两次翻转。比如可以在计数器计数到1时,输出时钟进行翻转,计数到2时再次进行翻转。这样,就在计数值邻近的1和2进行了两次翻转。如此便实现了三分频,其占空比为1/3或2/3。
比较器的输出端:
agb:输出a端信号与b端信号的比较值。
图2比较器模块仿真波形图
仿真结果说明:
当a端信号大于b端信号时,比如a为15而b为0时,输出端agb输出高电平信号“1”;反之,输出端agb输出低电平信号“0”。
always @ (posedge clk)
if(! rst)
begin
count <= 1'b0;
clk_odd <= 1'b0;
end
else
if ( count < N/4-1)
begin
count <= count + 1'b1;
clk_odd <= 1'b1;
end
else if (count < N/2-1)
4.实验步骤和程序分为三部分:一为基本步骤,二为程序流程图(也可以为算法的文字或公式说明)或状态图,三为程序源代码(可以不用全写,只写出关键部分的程序)及其说明。
5.实验结论和体会:一为实验结论,二为讨论当前设计的不足及其改进设想。
6.测试数据记录和结果分析:Verilog程序综合出来的RTL图(电路很复杂时不做要求);时序仿真结果(必备),可以抓图后打印出来贴在报告上,但必须对图里的结果有详细的文字说明。可参考以下案例格式写
#100;
#10 rst=1;

EDA常用电路设计程序

EDA常用电路设计程序

用VHDL进行基本逻辑电路设计总结组合逻辑电路设计、时序逻辑电路设计、状态机设计、存储器设计(调用宏功能模块进行设计)1 组合逻辑电路设计常见组合逻辑电路设计主要有:基本门电路、3-8译码器、8-3线优先编码器、比较器、多路选择器、三态门电路、单向总线驱动器、双向总线缓冲器等。

1.1 基本门电路基本门电路用VHDL语言来描述十分方便。

为方便起见,在下面的两输入模块中,使用VHDL中定义的逻辑运算符,同时实现一个与门、或门、与非门、或非门、异或门及反相器的逻辑。

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY GATE ISPORT (A,B:IN STD_LOGIC;YAND,YOR,YNAND,YNOR,YNOT,YXOR:OUT STD_LOGIC);END GATE;ARCHITECTURE ART OF GATE ISBEGINYAND <=A AND B;--与门输出YOR <=A OR B;--或门输出YNAND <=A NAND B;--与非门输出YNOR <=A NOR B;--或非门输出YNOT <=A NOT B;--反相器输出YXOR <=A XOR B;--异或门输出END ART;1.2 3-8译码器下面我们分别以2种方法描述一个3-8译码器。

方法1:使用CASE_WHEN 语句LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECODER ISPORT(SEL:IN STD_LOGIC_VECTOR(2 DOWNTO 0);EN: IN STD_LOGIC; ---加使能控制端Y:OUT STD_LOGIC _VECTOR (7 DOWNTO 0));END;ARCHITECTURE ART1 OF DECODER ISBEGINPROCESS(SEL,EN)BEGINY<=”11111111”;IF(EN=’1’) THENCASE SEL ISWHEN "000"=> Y(0)<= ‘0’;--输出低有效WHEN "001"=> Y(1)<= ‘0’;WHEN "010"=> Y(2)<= ‘0’;WHEN "011"=> Y(3)<= ‘0’;WHEN "100"=> Y(4)<= ‘0’;WHEN "101"=> Y(5)<= ‘0’;WHEN "110"=> Y(6)<= ‘0’;WHEN "111"=> Y(7)<= ‘0’;WHEN OTHERS=>NULL;END CASE;ELSE Y<=”11111111”;END IF;END PROCESS;END ART1;方法2:使用条件选择WHEN ELSE语句ARCHITECTURE ART2 OF DECODER ISBEGINY (0)<=‘0’ WHEN (EN=’1’AND SEL="000") ELSE ’1’;Y (1)<=‘0’ WHEN (EN=’1’AND SEL="001") ELSE ’1’;Y (2)<=‘0’ WHEN (EN=’1’AND SEL="010") ELSE ’1’;Y (3)<=‘0’ WHEN (EN=’1’AND SEL="011") ELSE ’1’;Y (4)<=‘0’ WHEN (EN=’1’AND SEL="100") ELSE ’1’;Y (5)<=‘0’ WHEN (EN=’1’AND SEL="101") ELSE ’1’;Y (6)<=‘0’ WHEN (EN=’1’AND SEL="110") ELSE ’1’;Y (7)<=’0’ WHEN (EN=’1’AND SEL="111") ELSE ’1’;END ART2;注意:使用了8条 WHEN ELSE 语句1.3 8-3线优先编码器8-3线优先编码器输入信号为y0、y1、y2、y3、y4、y5、y6和y7,输出信号为OUT0、OUT1和OUT2。

EDA组合逻辑电路设计

EDA组合逻辑电路设计

EDA组合逻辑电路设计EDA(电子设计自动化)组合逻辑电路设计是指利用计算机辅助设计软件,通过逻辑门、触发器等基本电子元件组合,实现特定的功能或逻辑运算的电路设计过程。

本文将详细介绍EDA组合逻辑电路设计的步骤、常用工具以及设计注意事项。

1.问题分析与规划:在该阶段,设计者需要明确电路的输入输出规格以及所需实现的功能。

同时,需要考虑电路的实际应用场景、成本和可行性等因素。

2.电路逻辑设计:在该阶段,设计者使用EDA工具,根据问题规格和功能需求,确定电路的逻辑结构,选择适当的逻辑门和触发器等元件,并组合它们以实现所需的功能。

3.电路模拟与验证:在该阶段,设计者使用EDA工具对设计的电路进行模拟和验证。

通过对电路进行仿真和测试,可以验证电路的功能正确性和性能指标,及时发现和修正设计中的错误和不足。

4.电路布局与布线:在该阶段,设计者使用EDA工具进行电路的布局和布线设计。

布局设计主要考虑元件的位置和连线的最短路径等问题;而布线设计则主要考虑信号的传输延迟、干扰抑制和功耗等问题。

5.电路物理验证与制造准备:在该阶段,设计者使用EDA工具进行电路的物理验证和制造准备。

通过对电路进行物理验证,可以预先发现电路的物理冲突和工艺瑕疵等问题;而制造准备则是将电路设计转化为可供实际制造的制造文件。

对于EDA组合逻辑电路设计,常用的EDA工具包括Verilog、VHDL等硬件描述语言工具和Quartus II、ISE等综合工具。

这些工具可以帮助设计者快速、准确地进行电路设计和仿真,并能够生成符合实际制造要求的电路制造文件。

在进行EDA组合逻辑电路设计时1.电路的可测试性:设计者应尽量提高电路的可测试性,即使得对电路的测试和调试更加简单和有效。

可以通过引入测试点、设计可重构电路等方式来提高电路的可测试性。

2.设计的灵活性和可扩展性:设计者应尽量设计出灵活和可扩展的电路,以适应不同的应用场景和功能需求。

尽量使用通用逻辑门和触发器等元件,避免使用特定的元件,以方便后续的修改和扩展。

EDA组合逻辑、时序电路设计报告

EDA组合逻辑、时序电路设计报告

E D A电路设计一、组合逻辑电路设计1、设计内容人的血型有A 、B 、AB 、O 四种。

输血时输血者的血型与受血者血型必须符合授受关系。

判断输血者与受血者的血型是否符合献血和输血 ,要求用八选一数据选择器(74LS151)及与非门(74LS00)实现。

(用两个逻辑变量的4种取值表示输血者的血型,例如00代表A 、01代表B 、10代表AB 、11代表O 。

)献血的授受关系如下:A B AB OA B AB O2、根据设计内容的要求,分析其逻辑关系定义四个变量a 、b 、c 、d ,它们的逻辑状态为“0”和“1”,则在表示血型上可以这样实现:例如,a 和b 为“00”表示A 型,代表输血者的血型,则对应的以c 和d 的组合代表受血者的血型,因为A 型血可以输给A 型(00)和AB 型(10),满足输血和受血的规则时,输出p 则为“1”,不满足则为“0”。

则根据这一分析,得到输血者和受血者对应的组合为:输血者a b 血型 0 0 A 0 1 B 1 0 AB 11O受血者得到真值表:c d 血型 0 0 A 0 1 B 1 0 AB 1 1O输血者血型受血者血型满足与否a b c d P0 0 0 0 10 0 0 1 00 0 1 0 10 0 1 1 00 1 0 0 00 1 0 1 10 1 1 0 10 1 1 1 01 0 0 0 01 0 0 1 01 0 1 0 11 0 1 1 01 1 0 0 11 1 0 1 11 1 1 0 11 1 1 1 1根据真值表得到逻辑表达式如下:p+++++=+++bdd c b aabcabcdababdaccbc3、源程序设计由逻辑表达式在EDA中编写的程序如下所示:ENTITY exchange_blood ISPORT(a,b,c,d:IN BIT;p:OUT BIT);END exchange_blood;ARCHITECTURE blood OF exchange_blood ISBEGINp<=((NOT a) AND (NOT b) AND (NOT c) AND (NOT d))OR c OR (b AND d) OR (b AND d) OR (b AND c) OR (a AND c) OR (a AND b) OR (a AND b AND d) OR (a AND b AND c) OR (a AND b AND c AND d);END blood;4、编译仿真根据设计的真值表输入,在编译完成无误后,进行波形仿真,按照真值表输入高低电平,最终仿真结果如下:5、结论对照真值表观察仿真结果,可以知道从波形仿真上输入输出波形确实满足了真值表的情况,但在输出波形上还存在着一些时间上的延迟,总体的来说,是实现了设计内容,完成了组合逻辑电路的设计。

组合逻辑电路的设计与测试实验原理和内容

组合逻辑电路的设计与测试实验原理和内容

组合逻辑电路的设计与测试实验原理和内容大家好,今天我们来聊聊组合逻辑电路的设计与测试实验原理和内容。

组合逻辑电路是由基本的逻辑门组成的电路,它可以实现各种逻辑功能。

那么,我们该如何设计一个组合逻辑电路呢?我们需要了解逻辑门的基本原理。

接下来,我将为大家详细介绍组合逻辑电路的设计与测试实验原理和内容。

1. 组合逻辑电路的设计组合逻辑电路的设计主要包括以下几个步骤:(1)确定电路的功能需求。

在设计组合逻辑电路之前,我们需要明确电路的功能需求,这将有助于我们选择合适的逻辑门和元器件。

(2)选择合适的逻辑门。

组合逻辑电路常用的逻辑门有与门、或门、非门等。

我们需要根据功能需求选择合适的逻辑门。

(3)连接逻辑门。

将选择好的逻辑门按照一定的顺序和方式连接起来,形成一个完整的组合逻辑电路。

(4)进行仿真和验证。

在实际搭建组合逻辑电路之前,我们可以使用仿真软件对其进行模拟,以检查电路设计的正确性。

如果仿真结果符合预期,那么我们就可以开始实际搭建组合逻辑电路了。

2. 组合逻辑电路的测试实验组合逻辑电路的测试实验主要包括以下几个步骤:(1)搭建组合逻辑电路。

在测试实验之前,我们需要根据设计图纸搭建出组合逻辑电路。

(2)输入信号。

为组合逻辑电路提供输入信号,观察输出结果是否符合预期。

(3)分析结果。

分析组合逻辑电路的实际输出结果,判断其是否满足功能需求。

如果输出结果不符合预期,那么我们需要进一步分析原因,找出问题所在。

(4)调整优化。

根据分析结果,对组合逻辑电路进行调整优化,使其性能更加优越。

通过以上步骤,我们可以完成组合逻辑电路的设计与测试实验。

实际操作过程中可能会遇到各种问题,但只要我们勇于尝试、不断学习,就一定能够克服困难,取得成功。

组合逻辑电路的设计与测试实验是一个充满挑战和乐趣的过程。

希望大家在学习过程中,能够充分发挥自己的想象力和创造力,设计出更多有趣的组合逻辑电路,为科技发展做出贡献。

谢谢大家!。

EDA实验四组合逻辑电路设计(二)--三态门、数选器、逻辑运算器

EDA实验四组合逻辑电路设计(二)--三态门、数选器、逻辑运算器

西安邮电学院实验中心实验报告院系电子工程学院班级学号姓名成绩教师签字实验日期实验名称组合逻辑电路设计(二)--三态门、数选器、逻辑运算器_______________________________________________________一、实验目的二、实验所用仪表及主要器材三、实验原理简述四、实验测量记录:(如数据、表格、曲线、计算等)五、实验遇到的问题及解决办法:(余留问题,体会等)一、实验目的(1)掌握三态门、数选器、逻辑运算器三种组合逻辑电路的设计方法,及其BHDL描述方法。

(2)掌握利用CPLD器件开发组合逻辑电路的方法。

二、实验所用仪表及主要器材PC,可编程逻辑实验电路板,下载线,USB电源线,双踪示波器,数字万用表,导线若干。

三、实验原理简述应用VHDL设计简单的逻辑电路四、实验内容在MAX+PULSII环境下,用VHDL语言按照输入—>编译—>仿真。

(1)设计一个多数表决电路,要求:当输入A、B、C、D有三个或三个以上为1时输出F为1;输入为其他状态时输出为0。

在MAX+plusII环境下,用VHDL语言描述下列逻辑电路,并编译,仿真。

程序仿真结果:(2)二个二位二进制数相乘。

程序实现如下:仿真结果:五、实验结果见上述内容。

六、实验心得在本次实验中我学会了使用MAX+PLUSII软件的文本编程的方式设计电路。

在本次实验的文本编译环节中出现不少问题:(1)保存时文件名与实体名不一致,导致程序编译结果不正确。

(2)写程序时没有按照语法规则编写,使得文件编译频繁报错,标点的错误也会导致整个程序无法编译。

经过本次实验,加深了我对VHDL的文本编译设计的理解,今后我应该多练习MAX+PLUSII软件以减少错误。

EDA实验报告1组合逻辑电路的设计

EDA实验报告1组合逻辑电路的设计

学院电子系实验报告学生姓名:班级:学号:课程:EDA技术实用教程一、实验题目:组合逻辑电路的设计二、实验地点:三、实验目的:1.熟悉QuartusⅡ的VHDL文本设计流程全过程,学习简单组合电路的设计、多层次电路设计、仿真和硬件测试。

2.加深FPGA\CPLD设计的过程,并比较原理图输入和文本输入的优劣。

四、实验内容:1.首先利用QuartusⅡ完成2选1多路选择器(如图S1-1)的文本编辑输入(mux21a.vhd)和仿真测试等步骤。

最后在实验系统上进行硬件测试,验证本项设计的功能。

图S1-12.将此多路选择器看成是一个元件mux21a,利用原理图输出法完成图s1-2,并将此文件放在同一目录中。

图s1-2编译、综合、仿真本例程,并对其仿真波形作出分析说明。

最后在实验系统上进行硬件测试,验证本项设计的功能。

3.七段数码管译码器(Decoder)七段数码管译码器(Decoder)的输入为4位二进制代码,输出为7个表征七段数码管代码的状态信号。

下面为一个七段数码管译码器的VHDL源代码模型:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY display ISPORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END;ARCHITECTURE ONE OF display ISBEGINPROCESS(A)BEGINCASE A ISWHEN "0000"=>LED7S<="0111111";--X"3F"->0WHEN "0001"=>LED7S<="0000110";--X"06"->1WHEN "0010"=>LED7S<="1011011";--X"5B"->2WHEN "0011"=>LED7S<="1001111";--X"4F"->3WHEN "0100"=>LED7S<="1100110";--X"66"->4WHEN "0101"=>LED7S<="1101101";--X"6D"->5WHEN "0110"=>LED7S<="1111101";--X"7D"->6WHEN "0111"=>LED7S<="0000111";--X"07"->7WHEN "1000"=>LED7S<="1111111";--X"7F"->8WHEN "1001"=>LED7S<="1101111";--X"6F"->9WHEN "1010"=>LED7S<="1110111";--X"77"->10WHEN "1011"=>LED7S<="1111100";--X"7C"->11WHEN "1100"=>LED7S<="0111001";--X"39"->12WHEN "1101"=>LED7S<="1011110";--X"5E"->13WHEN "1110"=>LED7S<="1111001";--X"79"->14WHEN "1111"=>LED7S<="1110001";--X"71"->15WHEN OTHERS=>NULL;END CASE;END PROCESS;END;编译、综合、仿真本例程,并对其仿真波形作出分析说明。

EDA-基本逻辑电路设计

EDA-基本逻辑电路设计
输入 输出
a 0 0 1 1
b 0 1 0 1
y 0 0 0 1
组合逻辑电路设计/简单门电路 2输入“与门”电路 组合逻辑电路设计 简单门电路/ 输入“与门” 简单门电路 输入 逻辑表达式方法 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MYAND2 IS PORT(A,B : IN STD_LOGIC; Y : OUT STD_LOGIC); END MYAND2; ARCHITECTURE ART OF MYAND2 IS BEGIN Y<=A AND B; END ART;
组合逻辑电路设计/译码器和编码器 3×8译码器 组合逻辑电路设计 译码器和编码器/ × 译码器 译码器和编码器 程序设计——查表法 查表法 程序设计
LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DEC38 IS PORT (A : IN STD_LOGIC_VECTOR( 2 DOWNTO 0) ; Y : OUT STD_LOGIC_VECTOR( 7 DOWNTO 0)) ; END DEC38 ; ARCHITECTURE ART OF DEC38 IS BEGIN WITH A SELECT Y<= "00000001" WHEN "000", "00000010" WHEN "001", "00000100" WHEN "010", "00001000" WHEN "011", "00010000" WHEN "100", "00100000" WHEN "101", "01000000" WHEN "110", "10000000" WHEN "111", "11111111" WHEN OTHERS ; END ART;

《电子设计自动化eda》组合逻辑电路设计

《电子设计自动化eda》组合逻辑电路设计

第二节
第三节
第四节
第五节
I 7 I 6 I 5 I 4 I 3 I 2 I1 I 7 I 6 I 5 I 4 I 3 I 2 I1 I 0 ) EI I 7 I 6 I 3 I 2 I 7 I 6 I 5 I 7 I 6 I 4
第六节
第七节
总目录 章目录 第一节
A0 EI EI ( I 7 I 6 I 5 I 4 I 3 I 2 I1 I 0 I 7 I 6 I 7 I 6 I 5 I 4 I 7 I 6 I 5 I 4 I 3 I 2 I 7 I 6 I 5 I 4 I 3 I 2 I1 I 0 ) EI I 7 I 6 I 7 I 5 I 3 I 2 I 7 I 5 I 4 I 7 I 5 I 3 I1 GS EI EI I 7 I 6 I 5 I 4 I 3 I 2 I 1 I 0 EI I 7 I 6 I 5 I 4 I 3 I 2 I 1 I 0
第二节
第三节
第四节
第五节
EO <= EI OR NOT(I7 AND I6 AND I5
AND I4 AND I3 AND I2 AND I1 AND I0); END behave;
第六节
第七节
总目录 章目录 第一节
第二节
第三节
第四节
第五节
第六节
第七节
74148优先编码器的仿真波形
注意:采用数据流编写优先编码器时,因为VHDL语言 目前还不能描述任意项,即下面的语句形式是非法的:
PORT ( I: IN STD_LOGIC_VECTOR(7 DOWNTO 0); EI:IN STD_LOGIC;
第四节
第五节

3.1组合逻辑电路的设计

3.1组合逻辑电路的设计

输出 C X Y
X = ABC + ABC + ABC
Y = AB + C
0 0 1 0 1 0 0 1
0 1 0 1 0 1 1 1
8
3.1 组合逻辑电路的设计
3. 设计举例 设计举例3 画出逻辑图。 4) 画出逻辑图。
X = ABC + ABC + ABC
Y = AB + C
A 1 B 1
& & & ≥1
出 L A 1 1 1 1 1 1 1 1
输 入 B 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1
出 L
BCD AB AD
0 AC L = AB + AC + AD + BCD
0 0 0 0 0 0 0 1
0 1 1 1 1 1 1 1
画出由与非门组成的逻辑电路。 4) 画出由与非门组成的逻辑电路。
原则:电路要最简(要求所用器件的种类和数量都尽可能 原则:电路要最简( 最简 1 且器件之间的连线也最少) 少,且器件之间的连线也最少)。
3.1 组合逻辑电路的设计
2. 设计举例 设计举例1 例1 设计一个表决电路,该电路输入为A、B、C,输出是L。当 设计一个表决电路,该电路输入为A 输出是L 输入有两个或两个以上为1 输出为1 输入有两个或两个以上为1时,输出为1,其他情况输出为 用与非门设计该表决电路。 0。用与非门设计该表决电路。 A B C L 解:1) 根据题意可列出真值表 +5V 0 0 0 0 2) 画出卡诺图 0 0 1 0 A BC 1 0 0 00 01 11 10 要设0 A BC 1 1 0B 1 0 0 0 计的0 1 L 逻辑1 0 0 0 1 1 1 1 0 AC AB C 电路 1 0 1 1 1 1 0 1 3)简化和变换逻辑表达式 L = AB+AC+BC 1 1 1 1

EDA实验报告———复杂组合逻辑电路设计方案

EDA实验报告———复杂组合逻辑电路设计方案

EDA技术实验报告专业班级____ 学号姓名实验日期:年月日成绩课程名称EDA技术实验实验项目名称复杂组合逻辑电路的设计一、实验目的本次试验利用Verilog 硬件语言设计一个数字频率计电路,掌握采用顶层原理图设计复杂的数字逻辑电路的方法,熟悉原理图的仿真和信号的检测方法。

二、实验环境在Quartus II 7.0中:1、利用Verilog 硬件语言,参考提供的源程序,设计一个带使能端、清零端输入和进位输出端的十进制计数器;2、利用Verilog 硬件语言,参考提供的源程序,设计一个数字频率计控制电路,包含计数器使能信号输出、锁存信号输出和计数器清除信号输出;3、利用Verilog 硬件语言,参考提供的源程序,设计一个四位二进制锁存器;4、利用原理图编辑方法,将以上设计好的电路模块进行连接,构成一个数字频率计电路。

三、算法和结果分析十进制计数器源程序:module cont10(clk,clr,en,c,q);input clk,clr,en;output c,q;reg c;reg [3:0] q;always @(posedge clr or posedge clk)if (clr)q<=0;elseif(en)if(q==9)beginq<=0;c<=1;endelsebeginq<=q+1;c<=0;endendmodule频率计信号控制源程序:module t_cont(clk_1hz,en,set,clr); input clk_1hz;output en,set,clr;reg en;wire set,clr;reg en_temp;always @(posedge clk_1hz)en<=!en;always @(negedge clk_1hz)en_temp<=en;assign set=!en & en_temp; assign clr=!(en|en_temp); endmodule位锁存器源程序:module reg4(set,dain,daout);input set;input [3:0] dain;output [3:0] daout;wire set;reg [3:0] daout;always @(posedge set)daout<=dain;endmodul四、讨论、总结1、通过本次实验加深了对Quartus II软件认识,掌握了从建立一个工程到建立底层、顶层文件、电路图仿真、管脚分配、波形仿真等一系列的知识技能。

第四章EDA_组合逻辑设计要点

第四章EDA_组合逻辑设计要点

(交通信号灯控制器)
分析:
(交通信号灯控制器)
(交通信号灯控制器)
(交通信号灯控制器)
(交通信号灯控制器)
(交通信号灯控制器)
声明函数时,仿真器会隐含声明一个同名寄存器变量,函 数的返回值通过这个寄存器传递回调用处。 递归函数使用关键字automatic进行定义,每次调用都有 不同的地址空间,递归调用和并发调用时可以得到正确结 果。
任务和函数都包含在设计层次中,可以通过层次名对它们 进行调用。
(交通信号灯控制器)
任务可以具有任意多个input、inout、output变量。可以 使用延迟、事件和时序控制结构,可以调用其它的任务和 函数。
可重入任务使用关键字automatic进行定义,它的每次调 用都对不同地址空间进行操作,并发调用时可获得正确结 果。
小结
函数只有一个返回值,至少一个输入,不能使用延迟、事 件和时序控制结构,可以调用其它函数,不能调用任务。
小结
4. 控制时序和语句执行顺序的 3种方式:基于延迟的时序控 制、基于事件的时序控制和电平敏感的时序控制。
基于延迟的时序控制包括3种形式:常规延迟,零延迟,内嵌延迟。 基于事件的时序延迟包括:常规事件、命名事件和OR事件。 wait语句用于对电平敏感的时序控制。
5. 条件语句关键词 if 和else,如果分支较多,使用case语 句比较方便 6. 四种循环语句:while,for,repeat和forever。
任务和函数
在行为级建模中,设计者经常需要在程序的多个不同地方实 现同样功能。将这些公共部分提取出来,组成子程序,供调 用,避免重复编码。 任务和函数
把大的行为级设计划分为小的代码段
任务和函数
任务和函数

EDA组合逻辑电路实验

EDA组合逻辑电路实验

实验报告实验一基本组合逻辑实验一、实验目的与要求1、熟悉Quartus II的verilog文本设计流程全过程,学习基本组合逻辑电路的设计、模块化设计、仿真和硬件验证二、实验设备STAR系列实验仪一套、PC机一台三、实验内容左图是实验仪的发光二极管的原理图注意:发光二极管低电平点亮1、编写一个2选1的多路选择器模块;2、编写程序,实现几个基本的门(与、或、非、与非、或非、异或、同或),并实例应用多路选择器四、实验原理图01AB selectoutoutmux2 2选1的多路选择器模块A BselectoutandLogicorLogicxnorLogicxorLogicA BselectandLogic orLogic notLogicnandLogicnorLogicxnorLogicxorLogicmuxoutmux2:mux2五、实验步骤1、编写程序,然后对其编译、综合、仿真,并对仿真波形作出分析说明2、引脚锁定以及硬件下载测试(可重配置区域E4 使用模式选择按键选择 模式一)六、设计程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux2 ISPORT(A,B,C:IN BOOLEAN;Y:OUT BOOLEAN);END ENTITY mux2;ARCHITECTURE ART OF mux2 ISBEGINPROCESS(A,B,C)ISVARIABLE N:BOOLEAN;BEGINIF A THEN N:=B;ELSE N:=C;END IF;Y<=N;END PROCESS;END ARCHITECTURE ART;七、实验扩展及思考利用组合逻辑电路,设计1)一位全加器;2)以一位全加器为基本元件,设计一个8位全加器。

一位全加器程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_adder ISPORT(ain,bin,cin:IN STD_LOGIC;cout,sum:OUT STD_LOGIC);END ENTITY f_adder;ARCHITECTURE fd1 OF f_ader ISCOMPONENTPORT(A,B:IN STD_LOGIC;Y:OUT STD_LOGIC);END COMPONENT;COMPONENTPORT(a,b:IN STD_LOGIC;c:OUT STD_LOGIC);END COMPONENT;SIGNAL net1,net2,net3:STD_LOGIC;BEGINU1:h_ader PORT MAP (A>=ain,B>=bin,CO>=net2,SO>=net1); U2: h_ader PORT MAP (net1,cin,net3,sum);U3: or2a PORT MAP (a=>net2,b=>net3,c=>cout);END ARCHITECTURE fd1;8位全加器程序如下LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER8B ISPORT(A,B:IN STD_LOGIC;CIN:IN STD_LOGIC;COUT:OUT STD_LOGIC;DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ENTITY ADDER8B;ARCHITECTURE BHV OF ADDER8B ISSIGNAL DATA :STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINDATA<=(‘0’&A)+(‘0’&B)+(“00000000”&CIN);COUT<=DATA(8);DOUT<=DATA(7 DOWNTO 0);END ARCHITECTURE BHV;八、实验感想通过实验初步了解了VHDL语言的使用方法和特点,还学会了进行实验仿真,引脚锁定等。

组合逻辑电路的设计举例

组合逻辑电路的设计举例

【例4】某工厂有三条生产线,耗电分别为1号线10kW,2号线 20kW,3号线30kW,生产线的电力由两台发电机组提供,其中1 号机组20kW,2号机组40kW。试设计一个供电控制电路,根据生 产线的开工情况启动发电机,使电力负荷达到最佳配置。
①逻辑抽象,列真值表 输入变量:生产线开工情况 A、B、C表示1、2、3号生产线, 生产线开工为1,停工为0;
1 11 1 1
水面低于检测元件——高电平; 无
水面高于检测元件——低电平; 水泵供水——高电平; 水泵不供水——低电平;
关 项
0 10 1 00
1 01 1 10
(二)写出函数式,同时化简 1、填写卡诺图: BC A 00 01 11 10
00 1 0
1 1
BC MS的卡诺图 A 00 01 11 10
4、将逻辑式化简或作适当变换: ① 使用小规模集成门电路,如不限种类 时,化为最简形式;如限制种类,要 变换成与器件相适应的形式。 ② 使用中规模组件时,将函数式变换成 与组件的逻辑函数相似的形式。
5、画出逻辑电路图。
给定逻辑功能
真值表
逻辑表达式 选定设器件计类型
和数目
表达式化简或 变换
逻辑电路图
二、组合逻辑电路的设计举例
A
1A VCC 1B 4B
1Y 4A
5V 如果要求用0 与非0 门实1 现 1 0 1、将函数式01 化为11 与非11 -与01非形11式
74LS00
B ML
2A 4Y 2B 3B
2Y 3A GND 3Y
C
MS
M S约 A ML束项 B
B0C
1
1
1
0
0
A 0 BC

EDA实验报告 常用组合逻辑电路设计

EDA实验报告 常用组合逻辑电路设计

EDA实验报告实验目的:1.常用组合逻辑电路设计方法2.VHDL设计思想与调试方法3.LPM元件定制4.电路设计的仿真验证和硬件验证实验要求:学习常用组合逻辑的可综合代码的编写,学习VHDL语言的编程思想与调试方法,学习通过定制LPM元件实现逻辑设计,通过波形仿真及硬件实验箱验证设计的正确与否。

实验流程:1.利用VHDL代码实现2.利用LPM元件定制实现3.运用分析调试工具RTL viewer查看景软件解释生成的原理图并分析实验具体步骤:1.利用VHDL代码实现(1)VHDL代码(2)编译通过后进行波形仿真2.利用LPM元件定制实现(1)Tools→ Mega Wizard Plug_in Manager或在图形编辑窗口空白处双击(2)Create a new custom megafunction variation(3)Installed Plug_Ins→ Arithmetic lpm_compare(4)然后进行相应的设置,Generate netlist ,选择要生成的文件,完成生成的VHDL语言代码:LIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY lpm;USE lpm.all;ENTITY lpm_compare2 ISPORT(dataa : IN STD_LOGIC_VECTOR (1 DOWNTO 0);datab : IN STD_LOGIC_VECTOR (1 DOWNTO 0);AeB : OUT STD_LOGIC ;AgB : OUT STD_LOGIC ;AgeB : OUT STD_LOGIC ;AlB : OUT STD_LOGIC ;AleB : OUT STD_LOGIC ;AneB : OUT STD_LOGIC);END lpm_compare2;ARCHITECTURE SYN OF lpm_compare2 ISSIGNAL sub_wire0 : STD_LOGIC ;SIGNAL sub_wire1 : STD_LOGIC ;SIGNAL sub_wire2 : STD_LOGIC ;SIGNAL sub_wire3 : STD_LOGIC ;SIGNAL sub_wire4 : STD_LOGIC ;SIGNAL sub_wire5 : STD_LOGIC ;COMPONENT lpm_compareGENERIC (lpm_representation : STRING;lpm_type : STRING;lpm_width : NA TURAL);PORT (dataa : IN STD_LOGIC_VECTOR (1 DOWNTO 0);datab : IN STD_LOGIC_VECTOR (1 DOWNTO 0);AgeB : OUT STD_LOGIC ;AlB : OUT STD_LOGIC ;AleB : OUT STD_LOGIC ;AneB : OUT STD_LOGIC ;AgB : OUT STD_LOGIC ;AeB : OUT STD_LOGIC);END COMPONENT;BEGINAgeB <= sub_wire0;AlB <= sub_wire1;AleB <= sub_wire2;AneB <= sub_wire3;AgB <= sub_wire4;AeB <= sub_wire5;lpm_compare_component : lpm_compareGENERIC MAP (lpm_representation => "UNSIGNED",lpm_type => "LPM_COMPARE",lpm_width => 2)PORT MAP (dataa => dataa,datab => datab,AgeB => sub_wire0,AlB => sub_wire1,AleB => sub_wire2,AneB => sub_wire3,AgB => sub_wire4,AeB => sub_wire5);END SYN;生成的波形图:生成的RTL viewer原理图思考题1、VHDL实体描述方式有哪些类型?优缺点是什么?答:(1)结构描述:使用元件例化方法描述硬件构造特征,定义实现实体的信号与实体的精确互连结构。

EDA设计基本组合电路

EDA设计基本组合电路

常用组合电路设计实例1 3线-8线译码器一、设计任务:描述一个3线-8线译码器,使能端为g1、g2a、g2b,地址选择端为a、b、c,输出端为总线y。

二、算法设计:用case语句描述电路,利用真值表辅助,很容易编写出程序。

三、端口图:四、实验原程序:decoder3_8.vhdlibrary ieee;use ieee.std_logic_1164.all;--库函数声名entity decoder3_8 isport(a,b,c,g1,g2a,g2b:in std_logic;y:out std_logic_vector(7 downto 0));end ; --实体即输入输出端口定义architecture rtl of decoder3_8is --结构体描述signal dz:std_logic_vector(2 downto 0);begindz<=c&b&a;process(dz,g1,g2a,g2b )beginif (g1='1' and g2a='0' and g2b='0') thencase dz 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;五、时序仿真结果图:--程序描述的3-8线译码器与中小规模集成电路74LS138功能相同。

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

xxxxx大学信息工程学院实验报告
课程名称: CPLD/FPGA 应用开发技术
实验名称:组合逻辑电路的设计
实验类型:验证性□ 综合性□ 设计性■实验室名称:信息学院机房
班级:学号:
姓名:组别:
同组人:成绩:
实验日期: 2010年6月29日
预习报告成绩:指导教师审核(签名):年月日
预习报告
一、实验目的:
1、掌握用VHDL 语言和EPLD 进行组合逻辑电路的设计方法。

2、加深对EPLD 设计全过程的理解。

3、掌握组合逻辑电路的静态测试方法。

二、实验设备:
1、PC 机
2、EDA 实验箱(主芯片是ALTERA EPM7128SLC84-15)。

三、实验内容:
1、用VHDL 语言输入法设计一个四舍五入判别电路,其输入为8421BCD 码,要求当
输入大于或等于5 时,判别电路输出为1;反之为0。

2、用VHDL 语言输入法设计四个开关控制一盏灯的逻辑电路,要求合任一开关,灯亮;
断任一开关,灯灭。

3、用VHDL 语言输入法设计一个优先权排队电路。

排队顺序为:
A=1 最高优先级
B=1 次高优先级
C=1 最低优先级
要求输出端最高只能有一端为“1”,即只能是优先级较高的输入端所对应的输出端
为“1”。

四、实验步骤:
1、采用文本编辑器输入VHDL 语言源程序,建立工程。

2、编译。

3、仿真。

4、对芯片进行编程。

5、根据管脚分配情况连线。

(1)四舍五入判别电路的四个输入管脚分别与四个拨码开关相连,输出数据与
LED 灯相连。

(2)开关控制电路的四个输入管脚分别与四个按键开关相连,输出管脚与LED
灯相连。

(3)优先权排队电路的A、B、C 三个信号分别连三个按键开关,三个输出信号
分别连三个LED 灯相连。

6、控制输入信号(按键或拨码开关),观察电路输出(LED 灯的亮与灭)。

五、实验报告要求:
1、给出电路的VHDL 描述、仿真结果。

2、说明波形图中输入数据的给定依据。

3、说明物理连线情况以及物理连线与编译时进行管脚分配有何关系?
实验报告成绩:指导教师审核(签名):年月日
实验报告
一、实验结果分析:
1.用VHDL 语言输入法设计一个四舍五入判别电路,其输入为8421BCD 码,要求当输入大于或等于5 时,判别电路输出为1;反之为0。

程序清单:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity pan4_5 is
port(d: in std_logic_vector(3 downto 0); y: out std_logic);
end pan4_5;
architecture beha of pan4_5 is
signal datain:integer;
begin datain<=conv_integer(d); process
begin
if (datain>=5) then
y<='1';
else
y<='0';
end if;
end process;
end beha;
仿真结果:
结果分析:
由上图分析可知,d3,d2,d1,d0 表示又BCD码表示的一位的十进制数。

当d3,d2,d1,d0分别设为0110,转化为十进制数为6,(6>5)。

则输出y为1。

其他可以此类推得出结论。

2、用VHDL 语言输入法设计四个开关控制一盏灯的逻辑电路,要求合任一开关,灯亮;
断任一开关,灯灭
程序清单:
library ieee;
use ieee.std_logic_1164.all; entity dd is
port (a,b,c,d: in std_logic; clk: in std_logic;
y:out std_logic);
end dd;
architecture beha of dd is signal q:std_logic;
begin
process(clk)
begin
if(clk'event and clk='1')then
if(a='1')or(b='1')or(c='1')or(d='1')the n
q<=not q;
end if ;
end if ;
end process;
y<=q;
end beha;
仿真结果:
结果分析:
由上图易得出:在时钟上升沿前有高电平,则输出结果翻转。

代表若4个开关中有一个状态变化,则灯的状态也发生改变。

3、用VHDL 语言输入法设计一个优先权排队电路。

排队顺序为:
A=1 最高优先级
B=1 次高优先级
C=1 最低优先级
要求输出端最高只能有一端为“1”, 即只能是优先级较高的输入端所对应的输出端为“1”。

程序代码:
library ieee; use ieee.std_logic_1164.all; entity paidui is port(din: in std_logic_vector(2 downto 0); dout: out std_logic_vector(2 downto 0)); end paidui; architecture beha of paidui is begin process(din) begin
case din is
when "000"=> dout<="000";
when "001"=> dout<="001";
when "010"=> dout<="010";
when "011"=> dout<="010";
when others=> dout<="100";
end case;
end process;
end beha;
仿真结果:
结果分析:
当输入为102(5)(101)=,即A=1,输出2(100)4=。

当输入为102(3)(011)=,即,A=0,B=1。

输出为2(010)2=。

同理当输入为2时,输出也为2。

实现了优先排队的功能。

二、实验心得体会
做完EDA实验,我感到受益匪浅。

这不仅使我了解了EDA的实验系统,学习了MAX+PLUSⅡ软件的使用,掌握了基本的电路设计流程、方法以及技巧,更增强了我对EDA设计的兴趣。

在实验的过程中,老师又结合实际详细的教了我们VHDL语言的基本指令及编程方法,教我们熟悉了在PC机上运用MAX+PLUSⅡ软件和EPLD进行电路设计的设计和仿真过程。

之后,老师为我们布置了实验任务,开始,大家都不会编写程序,或是编出来的程序有很多错误,但是在老师的指导修改下,我们克服了困难,找到了问题所在,改正了错误,编出了正确的程序。

但在软件使用及仿真的时候,大家都遇到了较大的困难,同学们都是第一次接触软件,而且软件都是纯英文,加上不熟悉使用流程,老师为我们了讲了使用方法之后大家还是不太懂,后来在同学们的互相讨论中,及个别问题请教老师后,终于也攻克了这一难关,得到了完美的仿真波形和结果。

具备这些基本知识,相信为我今后的自主学习奠定了良好的基础。

相关文档
最新文档