文档库 最新最全的文档下载
当前位置:文档库 › EDA例子

EDA例子

EDA例子
EDA例子

1.门电路的设计

基本门电路:与门、或门、非门(反相器)

复合门电路:与非门、或非门、与或非门

两种特殊的门电路:异或门、同或门

(1)

module(a,b,c,y1,y2,y3,y4,y5,y6,y7,y8);

input a,b,c;

output y1,y2,y3,y4,y5,y6,y7,y8;

assign y1= a & b;

assign y2= a | b;

assign y3= ~a;

assign y4= ~(a & b);

assign y5=~(a | b);

assign y6= ~( a&b | c);

assign y7= a ^ b;

assign y8=~(a ^ b);

endmodule

(2)

//-------------------------------------------

// BasicGate Modeling (Gate-Level)

// Filename: Basic_Gates.v

//------------------------------------------

module Basic_Gates (a,b,yand,yor,ynot,ynand,ynor,yxor,yxnor);

// Port Declarations

input a,b;

output yand,yor,ynot,ynand,ynor,yxor,yxnor;

// Gate instantiations

and (yand,a,b);

or (yor,a,b);

not (ynot,a);

nand (ynand,a,b);

nor (ynor,a,b);

xor (yxor,a,b);

xnor (yxnor,a,b);

endmodule

2.编码器的设计

在数字系统中,经常需要将特定意义的信息编成若干位二值代码,实现编码操作的数字电路称为编码器。

编码器分优先编码器和普通编码器两种,有4线-2线、8线-3线、16线-4线等多种类型,其中优先编码器应用最为普遍。74HC148为8线-3线优先编码器,其功能表如表5-1

所示。

表5-1 74HC148的功能表

在Verilog中,if-else if语句和带无关项的casex本身包含优先的概念,因此均可用于描述优先编码器。

例[5.1.2] 用if-else if语句设计74HC148

//

//---------------------------------------------------

// 8-3 Prioty Encoder (Behavioral Modeling)

// Filename: PriotyEncoder8_3b1.v

//---------------------------------------------------

module PriotyEncoder8_3b1(S_n,I_n,Y_n,YS_n,YEX_n);

// Port Declarations

input S_n; // 器件使能端,低电平有效

input [7:0] I_n; // 编码输入,低电平有效

output [2:0] Y_n; // 编码输出,低电平有效

output YS_n; // YS_n表示无编码信号输出,低电平有效

output YEX_n; // YEX_n表示有编码信号输出,低电平有效

reg [2:0] Y_n;

reg YS_n;

reg YEX_n;

// Behavioral Modeling

always @(S_n,I_n)

if (!S_n)

if (I_n[7]==0)

begin

Y_n=3'b000;

YS_n=1'b1;

YEX_n=1'b0;

end

else if (I_n[6]==0)

begin

Y_n=3'b001;

YS_n=1'b1;

YEX_n=1'b0; end

else if (I_n[5]==0) begin

Y_n=3'b010;

YS_n=1'b1;

YEX_n=1'b0;

end

else if (I_n[4]==0)

begin

Y_n=3'b011;

YS_n=1'b1;

YEX_n=1'b0;

end

else if (I_n[3]==0) begin

Y_n=3'b100;

YS_n=1'b1;

YEX_n=1'b0;

end

else if (I_n[2]==0)

begin

Y_n=3'b101;

YS_n=1'b1;

YEX_n=1'b0;

end

else if (I_n[1]==0)

begin

Y_n=3'b110;

YS_n=1'b1;

YEX_n=1'b0;

end

else if (I_n[0]==0) begin

Y_n=3'b111;

YS_n=1'b1;

YEX_n=1'b0; end

else

begin

Y_n=3'b111;

YS_n=1'b0;

YEX_n=1'b1;

end

else

begin

Y_n=3'b111;

YS_n=1'b1;

YEX_n=1'b1;

end

endmodule

例[5.1.2] 用casex语句设计优先编码器

//

//---------------------------------------------------

// 8-3 Prioty Encoder (Behavioral Modeling)

// Filename: PriotyEncoder8_3b2.v

//---------------------------------------------------

module PriotyEncoder8_3b2 ( S_n,I_n,Y_n,YS_n,YEX_n);

// Port Declarations

input S_n; // 器件使能端,低电平有效

input [7:0] I_n; // 输入

output [2:0] Y_n; // 编码表出

output YS_n; // YS_n表示无编码信号输入,低电平有效

output YEX_n; // YEX_n表示有编码信号输入,低电平有效reg [2:0] Y_n;

reg YS_n;

reg YEX_n;

// Behavioral Modeling

always @(S_n,I_n)

if (!S_n)

casex ( I_n)

8'b0???????: //

begin

Y_n=3'b000;

YS_n=1'b1;

YEX_n=1'b0;

end

8'b10??????: //

begin

Y_n=3'b001;

YS_n=1'b1;

YEX_n=1'b0;

end

8'b110?????: //

begin

Y_n=3'b010;

YS_n=1'b1;

YEX_n=1'b0;

end

8'b1110????: //

begin

Y_n=3'b011;

YS_n=1'b1;

YEX_n=1'b0;

end

8'b11110???: //

begin

Y_n=3'b100;

YS_n=1'b1;

YEX_n=1'b0;

end

8'b111110??: //

begin

Y_n=3'b101;

YS_n=1'b1;

YEX_n=1'b0;

end

8'b1111110?: //

begin

Y_n=3'b110;

YS_n=1'b1;

YEX_n=1'b0;

end

8'b11111110: //

begin

Y_n=3'b111;

YS_n=1'b1;

YEX_n=1'b0;

end

8'b11111111: //

begin

Y_n=3'b111;

YS_n=1'b0;

YEX_n=1'b1;

end

endcase

else // begin

Y_n=3'b111;

YS_n=1'b1;

YEX_n=1'b1;

end

endmodule

3.译码器的设计

译码器用于将编码器输出的二值代码重新翻译为原来特定的信息。74HC138是常用的3线-8线译码器,用于将3位二进制代码翻译成8个高低的电平信号。

74HC138的功能表如表2所示。译码器可以采用行为描述、数据流描述和结构描述等多种方式描述。

表5-2 74HC138的功能表

例[5.1.3] 用行为描述设计74HC138

//

//--------------------------------------------

// 3-8 Decoder (Behavioral Modeling)

// Filename: Decoder3_8b.v

//-------------------------------------------

module Decoder3_8b(s1,s2_n,s3_n,a,y_n);

// Port Declarations

input s1,s2_n,s3_n;

input [2:0] a;

output [7:0] y_n;

reg [7:0] y_n;

wire s;

// Behavioral Modeling

assign s=s1&~s2_n&~s3_n;

always @(s,a)

if ( s)

case ( a)

3'b000: y_n=8'b11111110;

3'b001: y_n=8'b11111101;

3'b010: y_n=8'b11111011;

3'b011: y_n=8'b11110111;

3'b100: y_n=8'b11101111;

3'b101: y_n=8'b11011111;

3'b110: y_n=8'b10111111;

3'b111: y_n=8'b01111111;

default: y_n=8'b11111110;

endcase

else

y_n=8'b11111111;

endmodule

例[5.1.3] 用数据流描述设计74HC138 //--------------------------------------------

// 3-8 Decoder (Dataflow modeling)

// Filename: Decoder3_8d.v

//-------------------------------------------

module Decoder3_8d(s1,s2_n,s3_n,a,y_n);

//

input s1,s2_n,s3_n;

input [2:0] a;

output [7:0] y_n;

//

assign s=s1&~s2_n&~s3_n;

assign y_n[0]= s&~a[2]& ~a[1]&~a[0];

assign y_n[1]= s&~a[2]& ~a[1]& a[0];

assign y_n[2]= s&~a[2]& a[1]&~a[0];

assign y_n[3]= s&~a[2]& a[1]& a[0];

assign y_n[4]= s& a[2]& ~a[1]&~a[0];

assign y_n[5]= s& a[2]& ~a[1]& a[0];

assign y_n[6]= s& a[2]& a[1]&~a[0];

assign y_n[7]= s& a[2]& a[1]& a[0];

endmodule

例[5.1.3] 用门级基元设计74HC138

//------------------------------------

// 3-8 Decoder (Gate-Level Modeling)

// Filename: Decoder3_8g.v

//------------------------------------

module Decoder3_8g(s1,s2_n,s3_n,a,y_n);

// Port Declarations

input s1,s2_n,s3_n;

input [2:0] a;

output [7:0] y_n;

// nand gates are instantiated

assign s=s1&~s2_n&~s3_n;

nand (y_n[0], s,~a[2], ~a[1],~a[0]); nand (y_n[1], s,~a[2], ~a[1], a[0]); nand (y_n[2], s,~a[2], a[1],~a[0]); nand (y_n[3], s,~a[2], a[1], a[0]); nand (y_n[4],s, a[2], ~a[1], ~a[0]); nand (y_n[5], s, a[2], ~a[1], a[0]); nand (y_n[6], s, a[2], a[1], ~a[0]); nand (y_n[7], s, a[2], a[1], a[0]); endmodule

最常用的几种EDA软件

常用的几种EDA软件 EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。 利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。 现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA 技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。EDA 设计可分为系统级、电路级和物理实现级。 EDA常用软件 EDA工具层出不穷,目前进入我国并具有广泛影响的EDA软件有:EWB、PSPICE、OrCAD、PCAD、Protel、Viewlogic、Mentor、Graphics、Synopsys、LSIlogic、Cadence、MicroSim 等等。这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同时以可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。下面按主要功能或主要应用场合,分为电路设计与仿真工具、PCB设计软件、IC设计软件、PLD 设计工具及其它EDA软件,进行简单介绍。 1、电子电路设计与仿真工具 电子电路设计与仿真工具包括SPICE/PSPICE;EWB;Matlab;SystemView;MMICAD等。下面简单介绍前三个软件。 (1)SPICE(Simulation Program with Integrated Circuit Emphasis) 是由美国加州大学推出的电路分析仿真软件,是20世纪80年代世界上应用最广的电路设计软件,1998年被定为美国国家标准。1984年,美国MicroSim公司推出了基于SPICE 的微机版PSPICE(Personal—SPICE)。现在用得较多的是PSPICE6.2,可以说在同类产品中,它是功能最为强大的模拟和数字电路混合仿真EDA软件,在国内普遍使用。最新推出了PSPICE9.1版本。它可以进行各种各样的电路仿真、激励建立、温度与噪声分析、模拟控制、波形输出、数据输出、并在同一窗口内同时显示模拟与数字的仿真结果。无论对哪种器件哪些电路进行仿真,都可以得到精确的仿真结果,并可以自行建立元器件及元器件库。 (2)EWB(Electronic Workbench)软件 是Interactive ImageTechnologies Ltd 在20世纪90年代初推出的电路仿真软件。目前普遍使用的是EWB5.2,相对于其它EDA软件,它是较小巧的软件(只有16M)。但它对模数电路的混合仿真功能却十分强大,几乎100%地仿真出真实电路的结果,并且它在桌面上提供了万用表、示波器、信号发生器、扫频仪、逻辑分析仪、数字信号发生器、逻辑转换器和电压表、电流表等仪器仪表。它的界面直观,易学易用。它的很多功能模仿了SPICE 的设计,但分析功能比PSPICE稍少一些。 (3)文字MATLAB产品族 它们的一大特性是有众多的面向具体应用的工具箱和仿真块,包含了完整的函数集用来对图像信号处理、控制系统设计、神经网络等特殊应用进行分析和设计。它具有数据采集、报告生成和MATLAB语言编程产生独立C/C++代码等功能。MATLAB产品族具有下列功能:数据分析;数值和符号计算;工程与科学绘图;控制系统设计;数字图像信号处理;财务工程;建模、仿真、原型开发;应用开发;图形用户界面设计等。MATLAB产品族被广泛地应用于

EDA程序设计试题及答案

1.请画出下段程序的真值表,并说明该电路的功能。 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY aaa IS PORT( oe,dir :IN STD_LOGIC ; a,b : INOUT STD_LOGIC_VECTOR(7 DOWNTO 0 ) ; END aaa ; ARCHITECTURE ar OF aaa IS BEGIN PROCESS(oe , dir ) 输入输出 BEGIN a1 a0 x3 x2 x1 x0 IF oe=?0?THEN a<=”zzzzzzzz”; b<=”zzzzzzzz”; 0 0 0 0 0 1 ELSIF oe=?1?THEN 0 1 0 0 1 0 IF dir=?0?THEN b<=a; 1 0 0 1 0 0 ELSIF dir=?1?THEN a<=b; 1 1 1 0 0 0 ENDIF; END IF ; END PROCESS ; END ar ; 功能为:2-4译码器…………………………………………..4分 2.请说明下段程序的功能,写出真值表,并画出输入输出波形。 LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; USE ieee.std_logic_unsigned.all; ENTITY aaa IS PORT( reset,clk: IN STD_LOGIC; q: BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0) ); END aaa; ARCHITECTURE bd OF aaa IS BEGIN PROCESS(clk,reset) BEGIN IF (reset='0') THEN q<="000"; ELSIF (clk'event AND clk='1') THEN IF (q=5) THEN q<="000"; ELSE q<=q+1; END IF; END IF; END PROCESS; END bd; 功能为:带进位借位的4位加/减法器。…………………………………..3分 输入输出波形图如下:………………………………………………………7分

EDA实验七八程序及仿真波形

1.8位序列信号检测器 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SCHK IS PORT(DIN, CLK, CLR : IN STD_LOGIC; AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END SCHK; ARCHITECTURE behav OF SCHK IS SIGNAL Q : INTEGER RANGE 0 TO 8 ; SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN D <="11100101"; PROCESS( CLK, CLR ) BEGIN IF CLR ='1' THEN Q <= 0 ; ELSIF CLK'EVENT AND CLK='1' THEN CASE Q IS WHEN 0=> IF DIN = D(7) THEN Q <= 1 ; ELSE Q <= 0 ; END IF ; WHEN 1=> IF DIN = D(6) THEN Q <= 2 ; ELSE Q <= 0 ; END IF ; WHEN 2=> IF DIN = D(5) THEN Q <= 3 ; ELSE Q <= 0 ; END IF ; WHEN 3=> IF DIN = D(4) THEN Q <= 4 ; ELSE Q <= 0 ; END IF ; WHEN 4=> IF DIN = D(3) THEN Q <= 5 ; ELSE Q <= 0 ; END IF ; WHEN 5=> IF DIN = D(2) THEN Q <= 6 ; ELSE Q <= 0 ; END IF ; WHEN 6=> IF DIN = D(1) THEN Q <= 7 ; ELSE Q <= 0 ; END IF ; WHEN 7=> IF DIN = D(0) THEN Q <= 8 ; ELSE Q <= 0 ; END IF ; WHEN OTHERS => Q <= 0 ; END CASE ; END IF ; END PROCESS ; PROCESS( Q ) BEGIN IF Q = 8 THEN AB <="1010"; ELSE AB <="1011"; END IF ; END PROCESS ; END behav ;

EDA实验程序汇总

实验二组合逻辑电路设计(一)设计一个四舍五入判别电路,其输入为842lBCD码,要求当输入大于或等于5时判别电路输 为l,反之为0。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ZQF IS PORT(A:IN UNSIGNED (3 DOWNTO 0); BCD0,BCD1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEVEN0,SEVEN1:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END ZQF ; ARCHITECTURE A OF ZQF IS SIGNAL XC:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(A) BEGIN IF A<10 THEN BCD1<="0000"; BCD0<=STD_LOGIC_VECTOR(A); SEVEN1<="0111111"; XC<=STD_LOGIC_VECTOR(A); ELSE BCD1<="0001"; BCD0<=A-10; SEVEN1<="0000110"; XC<=STD_LOGIC_VECTOR(A)-10; END IF; END PROCESS; SEVEN_SEGMENT:BLOCK BEGIN SEVEN0<="0111111" WHEN XC="0000" ELSE "0000110" WHEN XC="0001" ELSE "1011011" WHEN XC="0010" ELSE "1001111" WHEN XC="0011" ELSE "1100110" WHEN XC="0100" ELSE "1101101" WHEN XC="0101" ELSE "1111101" WHEN XC="0110" ELSE "0000111" WHEN XC="0111" ELSE "1111111" WHEN XC="1000" ELSE "1101111" WHEN XC="1001" ELSE "0000000"; END BLOCK SEVEN_SEGMENT;END A; 实验五英语字母显示电路

EDA 程序 题库

一、设计题1.请用VHDL中的if语句描述一个D触发器(181页) 2.8选1数据选择器,用VHDL写出源程序。其中:D7—D0是数据输入端,S2、S1和S0是控制输入端,Y是数据输出端。当S2、S1、S0=“000”时,D0数据被选中,输出Y=D0;当S2、S1、S0=“001”时,D1数据被选中,输出Y=D1,以次类推。试用CASE语句描述3-8译码器74LS138的逻辑功能说明:(1)输出为低电平有效;(2)74LS138有3个附加控制端G1、G2A和G2B,当G1=1,G2A+G2B=0时,译码器处于工作状态,否则译码器被禁止,所有输出端均被封锁为高电平。 3.用VHDL语言设计一个3—8译码器,管脚如图所示,其中en为使能端,sel(2 downto 0)为输入,y(7 downto 0)是输出,实体为dec,结构体为behave。(P174)

4.用VHDL语言设计一个2—10进制译码器,其中输入a(3 downto 0):4位BCD码,输出y(9 downto 0):10位二进制数,实体名为ym2_10,结构体名为rtl。 5.用元件例化语句设计如图所示电路。元件为2输入与非门YF2,实体名为YF4,结构体名为ab,端口采用如图标称。(152页) 6.题目:用VHDL语言编写十二进制同步计数器。引脚定义: reset复位,en计数控制,clk时钟,q(3 downto 0)计数器输出。

7.采用FOR-LOOP语句设计4(或8位)位奇偶校验逻辑电路的VHDL程序。(参考117,123页,不需要比较功能) 9.四选一数据选择器MUX,其端口定义如下:选择信号输入sel(1 downto 0);数据输入D3—D0;输出cout。当sel=“00”时,D0数据被选中,输出cout=D0;当sel=“01”时,D1数据被选中,输出cout=D1,以次类推。试采用下面三种方式中的两种来描述该数据选择器MUX的结构体。(a)用if语句。(b)用case 语句。(c)用when…else…语句。(可参考178页)

EDA必考程序

配置: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux21b IS PORT( a,b:IN STD_LOGIC; s:IN STD_LOGIC; y:OUT STD_LOGIC); END mux21b; ARCHITECTURE mux_arch1 OF mux21b IS BEGIN y <= a WHEN s = '0' ELSE b ; END mux_arch1 ; ARCHITECTURE mux_arch2 OF mux21b IS BEGIN Process(a,b,s) BEGIN IF (s='1') THEN y <= a; ELSE y <= b ; END IF; END Process; END mux_arch2; CONFIGURA TION first OF mux21b IS FOR mux_arch1 END FOR; END first; CONFIGURA TION second OF mux21b IS FOR mux_arch2 END FOR; END second; (3)W AIT UNTIL 条件--条件等待语句 这种形式的W AIT语句使进程暂停,直到预期的条件为真。W AIT UNTIL后面跟的是布尔表达式,在布尔表达式中隐式地建立一个敏感信号量表,当表中任何一个信号量发生变化时,就立即对表达式进行一次测评。如果其结果使表达式返回一个“真”值,则进程脱离挂起状态,继续执行下面的语句。 即W AIT UNTIL语句需满足以下条件: ?在条件表达式中所含的信号发生了变化; ?此信号改变后,且满足W AIT UNTIL语句中表达式的条件。 这两个条件缺一不可,且必须按照上述顺序来完成。 W AIT UNTIL语句有以下三种表达方式: ?W AIT UNTIL 信号= V ALUE; ?W AIT UNTIL RISING_EDGE(信号)= V ALUE;

EDA 常见实例源程序代码vhdl

第4章用VHDL程序实现常用逻辑电路 4.1 组合逻辑电路设计 4.1.1 基本逻辑门 library ieee; use iee.std_logic_1164.all; entity jbm is port(a,b: in bit; f1,f2,f3,f4,f5,f: out bit); end jbm; architecture a of jbm is begin f1<=a and b; --构成与门 f2<=a or b; --构成或门 f<=not a; --构成非门 f3<=a nand b; --构成与非门 f4<=a nor b; --构成异或门 f5<=not(a xor b); --构成异或非门即同门 end; 4.1.2 三态门 library ieee; use ieee.std_logic_1164.all; entity tri_s is port(enable: in std_logic; datain: in std_logic_vector(7 downto 0); dataout: out std_logic_vector(7 downto0)); end tri_s; architecture bhv of tri_s is begin process(enable,datain) begin if enable='1' then dataout<=datain; else dataout<="ZZZZZZZZ"; end if; end process; end bhv; 4.1.3 3-8译码器 library ieee; use ieee.std_logic_1164.all; entity decoder3_8 is port(a,b,c,g1,g2a,g2b: in std_logic; y: out std_logic_vector(7 downto 0)); end decoder3_8;

EDA实现电子琴的程序文件

实验十五电子琴设计 一、音名与频率的关系: 音乐上的十二平均律规定:每两个八度音之间的频率相差一倍。在这两个八度音之间,分成十二个半音,每两个相邻伴音的频率比为12 2。另外还规定,音名A的频率为440Hz。音名B到C、E到F之间为半音,其余为全音。这样,可计算得从A(简谱的低音6)到a1(简谱的高音6)之间每个音名的频率为: A(6):440Hz a(6):880Hz a1(6):1760Hz B(7):493.88Hz b(7):987.76Hz c(1):523.25Hz c1(1):1046.50Hz d(2):587.33Hz d1(2):1174.66Hz e(3):659.25Hz e1(3):1318.51Hz f(4):698.46Hz f1(4):1396.92Hz g(5):783.99Hz g1(5):1567.98Hz 二、设计要求: 设计一个电子琴,要求能演奏音名A到a1之间的全部音阶。按下一个键,则演奏该音名,并用数码管显示音名,用发光二极管指示高、中、低音。 三、设计提示: 本实验由键盘编码,音频输出译码器、分频器组成。取10MHz信号作为基准。以基准频率除以上述频率,可得各音名频率的分频系数。注意,为了减少输出的偶次谐波成分,最后输出应为对称方波。音频输出译码器实质上是一个多路选择器,根据键盘编码的输出,选择音阶发生器的不同的预置数,分频后输出音频。 分频器可以为加法计数器,以可以为减法计数器,计算预置数时稍有不同,应加以注意。另外,应根据基准频率和输出频率,来确定计数器的位数。 设计框图如下图所示: 电子琴框图 四、实验步骤 1、启动ISE集成开发环境,创建工程并输入设计源文件。

eda技术软件有哪些

eda技术软件有哪些 时间:2010-09-21 16:59:16 来源:作者: eda常用技术软件有哪些呢? EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。 利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。 现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA 的应用。目前EDA 技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。EDA 设计可分为系统级、电路级和物理实现级。 EDA常用软件 EDA工具层出不穷,目前进入我国并具有广泛影响的EDA软件有:EWB、PSPICE、OrCAD、PCAD、Protel、ViewLogic、Mentor、Graphics、Synopsys、LSIlogic、Cadence、MicroSim等等。这些工具

都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同时以可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。下面按主要功能或主要应用场合,分为电路设计与仿真工具、PCB设计软件、IC设计软件、PLD设计工具及其它EDA软件,进行简单介绍。 1、电子电路设计与仿真工具 电子电路设计与仿真工具包括SPICE/PSPICE;EWB;Matlab;SystemView;MMICAD等。下面简单介绍前三个软件。 (1)SPICE(Simulation Program with Integrated Circuit Emphasis)是由美国加州大学推出的电路分析仿真软件,是20世纪80年代世界上应用最广的电路设计软件,1998年被定为美国国家标准。1984年,美国MicroSim公司推出了基于SPICE的微机版PSPICE (Personal—SPICE)。现在用得较多的是PSPICE6.2,可以说在同类产品中,它是功能最为强大的模拟和数字电路混合仿真EDA软件,在国内普遍使用。最新推出了PSPICE9.1版本。它可以进行各种各样的电路仿真、激励建立、温度与噪声分析、模拟控制、波形输出、数据输出、并在同一窗口内同时显示模拟与数字的仿真结果。无论对哪种器件哪些电路进行仿真,都可以得到精确的仿真结果,并可以自行建立元器件及元器件库。 (2)EWB(Electronic Workbench)软件 是InterActive ImageTechnologies Ltd 在20世纪90年代初推出的电路仿真软件。目前普遍使用的是EWB5.2,相对于其它EDA软件,

EDA开发流程

开发流程 在了解了硬件描述语言的演进过程中,相信各位对VHDL及Verilog HDL 与ASIC EDA工具之间的关系,应已有基本的认识。在此,让我再强调一次:在高阶设计的领域中,硬件描述语言扮演的角色,只是一种程序语言接口(PLI);它提供了一个极具弹性的设计入口(design entry),以作为电路设计者与各种计算机辅助设计工具之间沟通的桥梁。因此,若缺少了这些EDA工具,硬件描述语言的剩余价值,也只不过是一种系统规划工具,或是技术文件格式而已。 具体地说,整个数字电路的高阶设计概念,可以说就是设计自动化(design automatize)的实现。理想的情况是:由仿真验证设计是否符合原始设定的规格(specification),以至于诸如逻辑电路的合成与实际晶体管配置与绕线(place and route)这一类徒手不易掌控的工作,工程师均能寻求适当的EDA 工具来完成整个电路的设计。完整的自动化数字电路设计流程包含了三种主要的EDA工具:仿真器(simulator)、合成器(synthesizer)以及配置与绕线(place and routing, P&R)工具;除了P&R工具之外,其余两者绝大部分,均是以VHDL或Verilog HDL作为其程序语言接口。以下,笔者将配合介绍这个典型的自动化设计流程,简述各项EDA工具的基本功用。 1.系统规格制定(Define Specification) 在ASIC设计之初,工程师们须根据产品的应用场合,为ASIC设定一些诸如功能、操作速度、接口规格、环境温度及消耗功率等规格,以做为将来电路设计时的依据。在这方面,目前已有厂商提供系统级仿真器(system -level simulator),为系统设计提供不错的解决方案;透过此类仿真器,工程师们可以预估系统的执行效能,并可以最佳化的考量,决定软件模块及硬件模块该如何划分。除此之外,更可进一步规划哪些功能该整合于ASIC内,哪些功能可以设计在电路板上,以符合最大的经济效能比。 2.设计描述(Design Description) 一旦规格制定完成,便依据功能(function)或其它相关考量,将ASIC划分为数个模块(module);此阶段是整个设计过程中最要的关键之一,它直接影响了ASIC内部的架构及各模块间互动的讯号,更间接影响到后续电路合成的效能及未来产品的可靠性。 决定模块之后,便分交由团队的各个工程师,以VHDL或Verilog等硬件描述语言进行设计-亦即功能的行为描述(behavioral description);为能明确及有效率地描述模块的内部功能,各模块之下可能再细分成数个子模块(sub-module),直到能以可合成(synthesizible)的语法描述为止。这种一层层分割模块的设计技巧,便是一般所谓的阶层式设计(hierarchical design);这与早期直接以绘制闸级电路进行设计的时代,所使用的技巧是相类似的。此一步骤所完成的设计描述,是进入高阶合成电路设计流程的叩门砖;习惯上,称之为硬件描述语言的设计切入点(HDL design entry)。关于此一步骤,亦有相关的辅助工具相继推出。Design Book便是其中的代表;它利用一般工程师熟悉的图形接口-如状态图及流程图,协助初接触以硬件描述语言进行设计的工程

EDA程序的

实验一:多路数据选择器(四选一)LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux41a IS PORT(a ,b ,c ,d : IN STD_LOGIC ; s1 ,s0 : IN STD_LOGIC ; y : OUT STD_LOGIC); END ENTITY mux41a; ARCHITECTURE one OF mux41a IS SIGNAL aa :STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN aa<= s1 & s0 ; PROCESS(aa) BEGIN CASE aa IS WHEN "00"=> y<=a; WHEN "01"=> y<=b; WHEN "10"=> y<=c; WHEN "11"=> y<=d; WHEN OTHERS=> NULL; END CASE; END PROCESS; END ARCHITECTURE one; 实验二:8-3编码器 library ieee; use ieee.std_logic_1164.all; entity encoder is port(input:in std_logic_vector(7 downto 1); ein: in std_logic; output: out std_logic_vector(2 downto 0)); end entity; architecture aa of encoder is begin process(input,ein) begin if ein= '1' then output<="111"; elsif input(7)= '0' then output<="000"; elsif input(6)= '0' then output<="001"; elsif input(5)= '0' then output<="010"; elsif input(4)= '0' then output<="011"; elsif input(3)= '0' then output<="100"; elsif input(2)= '0' then output<="101"; elsif input(1)= '0' then output<="110"; else output<="111"; end if; end process; end aa; 实验三:3-8译码器 library ieee; use ieee.std_logic_1164.all; entity decoder is port(a,b,c,g1,g2a,g2b:in std_logic; y:out std_logic_vector(7 downto 0)); end decoder; architecture aa of decoder is signal indata:std_logic_vector(2 downto 0); begin indata<=c&b&a; process(indata,g1,g2a,g2b) begin if(g1='1' and g2a='0' and g2b='0')then case indata is when "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; else y<="11111111"; end if; end process; end aa;

最常用的几种EDA软件

最常用的几种EDA软件 EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。 利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。 现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA 技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。EDA 设计可分为系统级、电路级和物理实现级。 EDA常用软件 EDA工具层出不穷,目前进入我国并具有广泛影响的EDA软件有:EWB、PSPICE、OrCAD、PCAD、Protel、ViewLogic、Mentor、Graphics、Synopsys、LSIlogic、Cadence、MicroSim等等。这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同时以可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。下面按主要功能或主要应用场合,分为电路设计与仿真工具、PCB设计软件、IC 设计软件、PLD设计工具及其它EDA软件,进行简单介绍。 1、电子电路设计与仿真工具 电子电路设计与仿真工具包括SPICE/PSPICE;EWB;Matlab;SystemView;MMICAD 等。下面简单介绍前三个软件。 (1)SPICE(Simulation Program with Integrated Circuit Emphasis) 是由美国加州大学推出的电路分析仿真软件,是20世纪80年代世界上应用最广的电路设计软件,1998年被定为美国国家标准。1984年,美国MicroSim公司推出了基于SPICE 的微机版PSPICE(Personal—SPICE)。现在用得较多的是PSPICE6.2,可以说在同类产品中,它是功能最为强大的模拟和数字电路混合仿真EDA软件,在国内普遍使用。最新推出了PSPICE9.1版本。它可以进行各种各样的电路仿真、激励建立、温度与噪声分析、模拟控制、波形输出、数据输出、并在同一窗口内同时显示模拟与数字的仿真结果。无论对哪种器件哪些电路进行仿真,都可以得到精确的仿真结果,并可以自行建立元器件及元器件库。 (2)EWB(Electronic Workbench)软件 是InterActive ImageTechnologies Ltd 在20世纪90年代初推出的电路仿真软件。目前普遍使用的是EWB5.2,相对于其它EDA软件,它是较小巧的软件(只有16M)。但它对模数

eda软件介绍

EDA课程设计论文几款EDA软件分析 院系; 专业: 学号: 姓名: 指导老师:

摘要:在弱电专业课程的学习过程中,学生务必要掌握几种常用的EDA软件。本文主要介绍了几种目前在教学、科研和开发生产中常用的EDA软件,并对软件的主要功能特点,应用范围等方面进行了简要分析。 关键词:EDA Quartus II Protel Multisim Matlab EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。下面介绍几款比较常用的EDA软件工具。 一、Quartus II 1、简介 Quartus II 是Altera公司的综合性PLD/FPGA开发软件, 支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合 器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设 计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。

Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 2、功能 Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括: 可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件; 芯片(电路)平面布局连线编辑; LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块; 功能强大的逻辑综合工具; 完备的电路功能仿真与时序逻辑仿真工具; 定时/时序分析与关键路径延时分析; 可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析; 支持软件源文件的添加和创建,并将它们链接起来生成编程文件; 使用组合编译方式可一次完成整体设计流程; 自动定位编译错误; 高效的期间编程与验证工具; 可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件; 能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。 3、其他 Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus 平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添了

eda程序

1、流水灯(简易) library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity roll is port ( clk :in std_logic; dout:out std_logic_vector(0 to 7)); end roll; architecture behave of roll is signal count:std_logic_vector(0 to 7):="00000001"; begin dout<=count; process(clk) variable x:integer range 0 to 19999999; begin if rising_edge(clk) then if x<19999999 then x:=x+1; else x:=0;count<=count(1 to 7)&count(0); end if; end if; end process; end behave; 2、流水灯(模板) library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity led_water is port(clk:in std_logic; qout:out std_logic_vector(7 downto 0)); end; architecture a of led_water is signal num:integer range 0 to 7 :=0; signal q0 :std_logic:='0'; begin process(clk) variable count :integer range 0 to 10000000; begin if rising_edge(clk) then

EDA程序

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY clock IS PORT ( CLK12MKZ : IN STD_LOGIC; CLK8HZ : IN STD_LOGIC; SPKOUT :OUT STD_LOGIC; CLK : IN STD_lOGIC; KEY1 : IN STD_LOGIC; KEY2 : IN STD_LOGIC_VECTOR(1 DOWNTO 0); H1,H2,M1,M2,S1,S2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END; ARCHITECTURE one OF clock IS COMPONENT shizhong PORT ( clk : in std_logic; md1 : in std_logic; md2 : in std_logic_vector(1 downto 0); clken : out std_logic; h1,h2,m1,m2,s1,s2 : out std_logic_vector(3 downto 0)); END COMPONENT; COMPONENT NoteTaba PORT ( clk : IN STD_LOGIC; ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0)); END COMPONENT; COMPONENT ToneTaba PORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0); Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0); en : in std_logic); END COMPONENT; COMPONENT Speakera PORT ( clk : IN STD_LOGIC; Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0); SpkS : OUT STD_LOGIC); END COMPONENT; SIGNAL Tone : STD_LOGIC_VECTOR (10 DOWNTO 0); SIGNAL ToneIndex : STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNAL clken : STD_LOGIC; SIGNAL en : STD_LOGIC; BEGIN u1 : Shizhong PORT MAP (clk=>CLK, md1=>KEY1, md2=>KEY2, clken=>en, h1=>h1, h2=>h2, m1=>m1, m2=>m2, s1=>s1, s2=>s2); u2 : NoteTabs PORT MAP (clk=>CLK8HZ, ToneIndex=>ToneIndex); u3 : ToneTaba PORT MAP (Index=>ToneIndex, Tone=>Tone, en=>en); u4 : Speakera PORT MAP (clk=>CLK12MKZ, Tone=>Tone, SpkS=>SPKOUT); END;

EDA程序编程

1、用AHDL语言编写图中的组合逻辑电路。 . 参考答案: SUBDESIGN decode1 (a0,a1,b:input; out1,out2:output; ) begin out1=a0&!a1 out2=out1&b; end; 2、门电路构成的半加器结构如下图 半加器h_adder表示如下: 图中SO为相加和的输出,CO为进位输出信号。 用VHDL语言对半加器进行描述。 参考答案: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY half adder IS PORT(a,b: IN STD_LOGIC; So,co:OUT STD_LOGIC); END half_adder; ARCHITECYURE hahav1 OF half_adder IS SIGNAL c,d:STD_LOGIC BEGIN c<=a OR b: d<=a NAND b; co<=NOT d AFTER 5ns; so<=c AND d AFTER 5ns; END behav1; 3、本题为一个4位加法器的VHDL语言描述,4位加法器其输入为a0、 a1、a2、a3、b0、b1、b2、b3、进位输入为cin;输出为s0、s1、s2、s3,进位输出为cout。请完善本程序。 文件名为adder_4bits.vhd LIBRARY IEEE; USE IEEE.STD.LOGIC_1164.ALL; ENTITY adder_4bits IS PORT ( a0,a1,a2,a3 :IN STD_LOGIC; b0,b1,b2,b3,cin :IN STD_LOGIC; s0,s1,s2,s3 :OUT STD_LOGIC); END adder_4bits ; ARCHITECTURE strc OF adder_4bits IS COMPONENT full_adder PORT(a,b,cin:IN std_LOGIC; S,co:OUT std_logic); END COMPONENT; SIGNAL U0_c,U1_c,U2_c:STD_LOGIC; 1

相关文档