总结是指对某一阶段的工作、学习或思想中的经验或情况加以总结和概括的书面材料,它可以明确下一步的工作方向,少走弯路,少犯错误,提高工作效益,因此,让我们写一份总结吧。什么样的总结才是有效的呢?以下我给大家整理了一些优质的总结范文,希望对大家能够有所帮助。
eda技术知识总结篇一
综述部分
的中文全称为电子设计自动化,英文全名为electronic design automation。平台常用的两种输入电路的方法是:电路原理图输入法、hdl输入法。平台工作流程:电路输入、综合优化、功能仿真、布局布线、门级仿真。
数字电路部分
中常用的仿真语言为verilog和vhdl。
其英文全名为vhsic hardware description language,而vhsic则是very high speed intergeraterd circuit的缩写词,意为甚高速集成电路,故vhdl其准确的中文译名为甚高速集成电路的硬件描述语言。
g hdl其英文全名为verilog hardware decription language,hdl中文译名为硬件描述语言。
g和vhdl的比较
共同点:能形式化地抽象表示电路的行为和结构;支持逻辑设计中层次与范围的描述;可借用高级语言的精巧结构来简化电路行为的描述;具有电路仿真与验证机制以保证设计的正确性;支持电路描述由高层到低层的综合转换;硬件描述与实现工艺无关;便于文档管理;易于理解和设计重用。
不同点:verilog在系统级抽象方面略差,vhdl在门级开关电路方面略差。
5.软核、固核和硬核
软核:功能经过验证的、可综合的、实现后电路结构总门数在5000门以上的verilog模型。
固核:在某一种现场可编程门列器件上实现的经验证是正确的,且总门数在5000门以上的电路结构编码文件。
在某一种专用集成电路工艺的器件上实现的,经验证是正确的,且总门数在5000门以上的电路结构版图掩膜。6.自顶向下(top down)设计
7.自底向上(down top)设计
8.名词解释:
asic:application specific integrated circuit,专用集成电路。
fpga:field programmable gate array,现场可编程门阵列。pld:programmable logic device,可编程逻辑器件。
verilog编程题: 数据比较器(2位)//数据比较器
module compare(equal, a, b);input a,b;output equal;reg equal;always @(a or b)if(a == b)equal = 1;else equal = 0;endmodule
//数据比较器测试代码 `timescale 1ns/1ns `include “./1-1.v” module t;reg a,b;wire equal;initial begin a=0;b=0;#100 a=0;b=1;#100 a=1;b=1;#100 a=1;b=0;#100 a=0;b=0;#100 $stop;end
compare m(.equal(equal),.a(a),.b(b));endmodule
数据比较器(8位)
module compare8(equal, a, b);input [7:0]a, b;output equal;reg equal;always @(a or b)if(a > b)begin equal = 1;end else begin equal = 0;end endmodule 分频器
module half_clk(reset, clk_in, clk_out);input clk_in, reset;output clk_out;reg clk_out;
always @(posedge clk_in)begin if(!reset)clk_out = 0;else clk_out = ~clk_out;end endmodule
10m时钟分频为500k module fspanision(reset, mb, kb);input mb, reset;output kb;reg kb;reg [7:0] j;
always @(posedge mb)if(!reset)begin kb <= 0;j <= 0;end else begin if(j == 19)begin j <= 0;kb <= ~kb;end else j <= j+1;end endmodule
译码电路
`define plus 3'd0 `define minus 3'd1 `define band 3'd2 `define bor 3'd3 `define unegate 3'd4
module alu(out, opcode, a, b);output[7:0] out;reg[7:0] out;input[2:0] opcode;input[7:0] a,b;
always @(opcode or a or b)begin case(opcode)`plus: out = a + b;`minus: out = a-b;`band: out = a & b;`bor: out = a | b;`unegate: out = ~a;default: out = 8'hx;endcase end endmodule
八路数据选择器
module selecting8(addr, in1, in2, in3, in4, in5, in6, in7, in8, dataout, reset);input [2:0] addr;input [3:0] in1,in2,in3,in4,in5,in6,in7,in8;input reset;output [3:0] dataout;reg [3:0] dataout;
always @(addr or in1 or in2 or in3 or in4 or in5 or in6 or in7 or in8 or reset)begin if(!reset)case(addr)3'b000: dataout = in1;3'b001: dataout = in2;3'b010: dataout = in3;3'b011: dataout = in4;3'b100: dataout = in5;3'b101: dataout = in6;3'b110: dataout = in7;3'b111: dataout = in8;endcase else dataout = 0;end endmodule
逻辑运算电路
module tryfunct(clk, n, result, reset);output[31:0] result;input[3:0] n;input reset, clk;reg[31:0] result;
always @(posedge clk)begin if(!reset)result <=0;else begin result <= n*factorial(n)/((n*2)+1);end end
function [31:0] factorial;input [3:0] operand;reg [3:0] index;begin factorial = operand ? 1:0;for(index = 2;index <= operand;index = index + 1)factorial = index *factorial;end endfunction endmodule
module tryfunct(clk, n, result, reset);output[31:0] result;input[3:0] n;input reset, clk;reg[31:0] result;
always @(posedge clk)begin if(!reset)result <=0;else begin result <= n*factorial(n)/((n*2)+1);end end
function [31:0] factorial;input [3:0] operand;reg [3:0] index;begin factorial = operand ? 1:0;for(index = 2;index <= operand;index = index + 1)factorial = index *factorial;end endfunction endmodule
高速排序组合逻辑
module sort4(ra, rb, rc, rd, a, b, c, d);output[3:0] ra, rb, rc, rd;input[3:0] a, b, c, d;reg[3:0] ra, rb, rc, rd;reg[3:0] va, vb, vc, vd;
always @(a or b or c or d)begin {va, vb, vc, vd} = {a, b, c, d};sort2(va, vc);sort2(vb, vd);sort2(va, vb);sort2(vc, vd);sort2(vb, vc);{ra, rb, rc, rd} = {va, vb, vc, vd};end
task sort2;input[3:0]x, y;reg[3:0] tmp;if(x > y)begin tmp = x;x = y;y = tmp;end endtask endmodule
检测5位二进制序列10010 module seqdet(x, z, clk, rst, state);input x, clk, rst;output z;output[2:0] state;reg[2:0] state;wire z;
parameter idle = 'd0, a = 'd1, b = 'd2, c = 'd3, d = 'd4, e = 'd5, f = 'd6, g = 'd7;
assign z =(state == e && x == 0)? 1:0;
always @(posedge clk)if(!rst)begin state <= idle;end else case(state)idle: if(x == 1)begin state <= a;end a: if(x == 0)begin state <= b;end b: if(x == 0)begin state <= c;end else begin state <= f;end c: if(x == 1)begin state <= d;end else begin state <= g;end d: if(x == 0)begin state <= e;end else begin state <= a;end e: if(x == 0)begin state <= c;end else begin state = a;end f: if(x == 1)begin state <= a;end else begin state <= b;end g: if(x == 1)begin state <= f;end default: state = idle;endcase endmodule
模拟电路部分
1.目前,集成电路最常用的材料是单晶硅。
2.集成电路的生产由设计、制造、封装三部分组成。
3.集成电路中基片主要制作工艺为:光刻、扩散、注入、刻蚀、键合。
4.集成电路中基片的制造步骤为:光刻、扩散、注入、刻蚀。
5.衡量集成电路产业水平的两个主要参数为:硅晶圆片直径和光刻精度(特征尺寸)。这两个参数在业界达到的水平为:硅晶圆片直径12英寸(300mm),光刻精度0.13um。主流水平为:硅晶圆片直径200mm,光刻精度0.18um。
6.模拟电路中常用的仿真算法是spice,英文全名为simulation program with integrated circuit emphasis。
7.世界上设计eda软件实力最强的两个公司为cadence和synopsys。其中,cadence的优势为电路布局布线,synopsys的优势为逻辑综合仿真。
nch是加拿大iit公司退出的电子线路仿真软件。它可以对模拟、数字和模拟/数字混合电路进行仿真,克服了传统电子产品的设计受实验室客观条件限制的局限性,用虚拟的元件搭接各种电路,用虚拟的仪表进行各种参数和性能指标的测试。特点如下:(1)系统集成度高,界面直观,操作方便。(2)具备模拟、数字及模拟/数字混合电路仿真。(3)提供较为丰富的元器件库。(4)电路分析手段完备。(5)输出方式灵活。(6)兼容性好。语言举例: example
vcc 8 0 12
**** 文件名 任意名都可以 但必须要有****
**** 电源正极接于节点8 负极接于0 电压为12v **** vee 0 9 12
**** 电源正极接于节点0,负接接于节点9,电压为12v;**** vin 1 0 ac 1 sin(0 0.1 5meg)
**** 信号源vin 接于1 和接点0;交流1v 进行交流分析 同时加一个正弦信号 直流偏置为0,振幅为0.1v频率为5m的交流信号源,进行瞬态分析;**** rc1 8 4 10k
rc2 8 5 10k
rs 2 1 1k
rs1 8 7 20k
rs2 3 0 1k
**** 电阻rc1 分别接于节点8 节点4;阻值为10k;**** **** 电阻rc2 分别接于节点8 节点5;阻值为10k;**** **** 电阻rs 分别接于节点1 节点0;阻值为1k;**** **** 电阻rs1 分别接于节点8 节点7 阻值为20k;**** **** 电阻rs2 分别接于节点3 节点0 阻值为1k;**** q1 4 2 6 mod1
**** 三极管q1 cbe 分别接于节点 4 2 6 模型为mod1**** q2 5 3 6 mod1
**** 三极管q2 cbe 分别接于节点 5 3 6 模型为mod1**** q3 6 7 9 mod1
**** 三极管q3 cbe 分别接于节点 6 7 9 模型为mod1**** q4 7 7 9 mod1
**** 三极管q4 cbe 分别接于节点 7 7 9 模型为mod1****.op
**** 求出直流工作点.本电路共有9个节点;温度值为27度;****.dc vin-.15.15.01
**** dc为直流分析语句,分析输入电压从-0.15v到0.15v扫描特性,每0.1v作一次分析;****.print dc v(4)v(5)
****.print 为打印语句,其中dc是打印直流内容,这里规定打印节点4和5上的电位,既相对地参考点的电压随输入的变化关系;****.plot dc v(4)v(5)
****.plot为绘图语句,其中dc表示绘制直流分析的传输特性,说明是绘制v(4)v(5)的输出电压和vin关系曲线;****.tf v(5)vin
****.tf是转移函数分析语句,该句表示计算直流分析时,小信号输出电压v(5)和输入电压vin的转移函数值,输入电阻和输出电阻;****.ac dec 10 25k 250meg
****.ac是交流分析语句,是在规定的频率范围内从25k到250m进行频域分析dec表示按数量级变化,10表示每一数量级中取的分析点数目;****.print ac vm(5)vp(5)
**** 打印ac分析vm(5)vp(5)的取点数;****.plot ac vm(5)vp(5)
**** 绘制ac分析vm(5)vp(5)的取点数;****.tran 4n 100n 1n
****.tran是瞬态分析语句,并规定了打印或绘图时间增量为4n秒,计算终止时间为100n秒,打印或绘图开始时间1ns*;****.print tran v(5)v(4)
****.打印出4.5点的电压随时间变化;****.plot tran v(5)v(4)
****.绘图出节点4.5的电压随时间变化;****.end
**** 结束语句...一定要有;****
eda技术知识总结篇二
vhdl有如下特点:①支持从系统级到逻辑门级电路的描述;②具有很强的硬件描述能力;③设计技术齐全、方法灵活、支持广泛;④对设计描述具有相对的独立性;⑤具有很强的移植能力;⑥易于共享和复用;⑦具有丰富的仿真语句和库函数;⑧设计结构清晰、易读易懂;⑨易实现系统的更新和升级;⑩数据类型丰富、安全性好。
vhdl语言中常用的五种库:1)ieee库:vhdl语言设计中最常见的库。2)std库:vhdl语言的标准库3)work库:用户的vhdl语言工作库。4)vital库: vhdl语言的时序仿真库5)用户自定义的库:用户自定义的资源库
变量的使用规则:① 变量不能用于硬件连线和存储元件;② 变量赋值和初始化赋值都用“:=”表示;③ 变量的初值不是预设的,某一时刻只能有一个值;④ 变量不能用于在进程间传递数据;⑤ 仿真时,变量用于建模;⑥ 综合时,变量充当数据的暂存。
信号与变量的区别:①使用场合不同:变量在进程、函数和过程中说明;信号在结构体中说明。②赋值符号不同:变量用“:=”号赋值, 其值被立即使用(无时间延时);信号用“<=”赋值,其值可以附加延时。
vhdl语言预定义了五种运算符:逻辑运算符、算术运算符、关系运算符、符号运算符、移位运算符
主要的三家公司:xilinx、altera、lattice eda软件系统包括子模块:设计输入子模块、设计数据库子模块、分析验证子模块、综合仿真子模块、布局布线子模块。
电子系统设计的仿真过程分为两个阶段:设计前期的系统级仿真和设计过程的电路级仿真。(系统仿真主要验证系统的功能;电路级仿真主要验证系统的性能,决定怎样实现设计所需的精度。)
设计过程中的仿真有三种:行为仿真、功能仿真、时序仿真 数字系统的两个模块(子系统):数据处理子系统、控制子系统
数据处理子系统主要完成数据的采集、存储、运算、传输,主要由存储器、运算器、数据选择器等功能电路组成。数字系统设计方法:模块设计方法、自顶向下设计法、自底向上设计法。一般采用自顶向下、由粗到细、逐步求精的方法。
数字系统的设计准则:1)分割准则2)系统的可观测性3)同步和异步电路4)最优化设计5)系统设计的艺术
数字系统的设计步骤:1)系统任务分析2)确定逻辑算法3)建立系统及子系统模型4)系统(或模块)逻辑描述5)逻辑电路级设计及系统仿真6)系统的物理实现 vhdl语言要素:数据对象、数据类型、各类操作数及运算操作符 标识符规则:以英文字母开头,不连续使用下划线“_”,不以下划线结尾的,由26个大小写英文字母、数字0~9及下划线“_”组成的字符串,英文字母不区分大小写,vhdl的保留字不能用于作为标识符使用。
在进程中,只能将信号列到敏感表,而不能将变量列入敏感表。可见进程对信号敏感。vhdl中的数据类型:标量型(包括:实数型、整数型、枚举型、时间类型)、复合类型(数组型、记录型)、存取型、文件类型
vhdl四大类数据类型又可分为两类:预定义数据类型、用户自定义数据类型(基于预定义数据类型)预定义数据类型:1)布尔型2)位数据类型(bit)3)位矢量(bit_vector)4)字符型5)整数型6)自然数和正整数型7)实数型8)字符串型9)时间型10)错误等级 数据类型:标准逻辑位std_logic、标准逻辑矢量std_logic_vector vhdl中六类基本顺序语句:赋值语句、转向控制语句、等待语句、子程序调用语句、返回语句、空操作语句。
在信号赋值时,当统一进程中,同一信号赋值目标有多个赋值源时,信号赋值目标获得的是最后一个赋值,其前面相同的赋值目标则不作任何变化。
转向控制语句五种:if语句、case语句、loop语句、next语句、exit语句
当执行wait等待语句,程序将被挂起,知道满足结束条件后,程序重新开始执行。已列出敏感量的进程不能使用任何形式的wait语句 过程调用:执行一个给定名字和参数的过程
过程名[([形参名=>] 实参表达式 {,[形参名=>]实参表达式})];过程调用步骤:1)将in和inout的形参值赋给调用过程中与之对应的形参;2)执行这个过程;3)将过程中in和inout的形参值赋给对应的实参
函数调用:返还一个指定数据类型的值,函数的参量只能是输入值 任何时刻,一个对象(信号、常量、变量)只有一个值,但可有多个属性 预定义属性描述:属性测试项目名’属性标识符 clock’event and clock=’1’对上升沿的测试(或者not(clock’stable and clock=’1’))clock’event and clock=’0’对下降沿的测试(或者clock’stable and clock=’0’)并行语句在结构体中的执行是同步的。每一并行语句内部的语句运行方式:并行执行、顺序执行。结构体中并行语句有七种:1)并行信号赋值语句2)进程语句3)块语句4)条件信号赋值语句5)元件例化语句6)生成语句7)并行过程调用语句
process中规定了每个进程语句在它的摸个敏感信号的值改变时都必须立即完成某个功能行为。进程的激活必须由敏感信号表中定义的敏感信号的变化来启动,否则必须有一个显示的wait语句激活
并行信号赋值语句包括:简单信号赋值语句、条件信号赋值语句、选择信号赋值语句 简单信号赋值语句:信号赋值语句<=表达式;
条件信号赋值语句:赋值目标<=表达式 when 赋值条件 else(类似于if语句)表达式 when 赋值条件 else „„ 表达式;
选择信号赋值语句:with 选择表达式 select(类似于case语句)赋值目标<=表达式 when 选择值,表达式 when 选择值,„„
表达式 when 选择值;
元件例化是使vhdl设计实体构成自上而下层次化设计的一个重要途径。组成部分:1)将一个现成的设计实体定义为一个元件的语句;2)此元件与当前设计实体中的连接说明
元件例化语句中定义的例化元件的端口名与当前系统的连接实体端口名的接口表达式表达有两种方式:1)名字关联方式:通过“=>”一一对应2)位置关联方式:按例化元件端口的定义顺序将例化元件的对应的连接实体端口名一一列出
生成语句有一种复制功能。生成语句的四个组成部分:生成方式、说明部分、并行语句、标号。
子程序是利用顺序语句来定义和完成算法的。只能通过子程序调用及与子程序的界面端口进行通信。包括过程(可单独存在,多个返回值,有输入/出双向参数)和函数(作为语句的一部分调用,一个返回值,所有参数都是输入参数),可在vhdl的结构体或程序包中任何位置调用子程序。
子程序特性:可重载性,即允许有许多重名的子程序,但这些子程序的参数类型及返回值数据类型不同
函数组成:函数首(作用:作为程序包的有关此函数的一个接口界面)、函数体
重载函数:vhdl允许相同的函数名定义函数,但要求函数中定义的操作数具有不同的数据类型。
过程组成部分:过程首、过程体。过程首不是必须的,过程体可以独立存在和使用
过程首参数表用于对常数、变量、信号三类数据对象目标作出说明,并用in、out、inout定义参数工作模式(信息流向)
一般把eda技术的发展分为cad、cae、eda三个阶段。
eda设计流程包括设计准备、设计输入、设计处理、的设计验证包括功能仿真、时序仿真、器件测试三个过程
eda的设计输入包括文本输入方式、图形输入方式、波形输入方式三个过程
当前最流行的并成为ieee标准的硬件描述语言包括vhdl 语言、verilog 和 hdl 语言
将硬件描述语言转化为硬件电路的重要工具软件称为hdl 综合器
基于eprom、e2prom和快闪存储器件的可编程器件,在系统断电后编程信息不丢失 基于sram结构的可编程器件,在系统断电后编程信息 会丢失
cpld器件中至少包括可编程逻辑宏单元、可编程 i/o 单元、可编程内部连线三种结构 fpga的三种可编程电路分别是可编程逻辑块 clb、输入/输出模块 iob、互连资源三种结构 根据逻辑功能块的大小不同,可将fpga(可编程逻辑器件)分为细密度、粗密度两类;据fpga内部连线结构的不同,可将fpga分为分段互连型、连续互连型两类;据fpga采用的开关元件不同,可将fpga分一次编程型(otp)、可重复编程型(mtp)两类
目前常见的可编程逻辑器件的编程和配置工艺包括电可擦存储单元的 e2prom 或 flash 技术、sram 查找表的编程单元、反熔丝编程单元三种编程工艺。
vhdl设计实体的基本结构由库、程序包使用说明、设计实体的说明、结构体说明、配置 等部分组成
实体、结构体是设计实体的基本组成部分,他们可以构成最基本的vhdl程序 在vhdl的端口声明语句中,端口方向包括in out buffer inout vhdl的数据对象包括常数 constant、变量 variable、信号 signal它们是用来存放各种类型数据的容器
vhdl的操作符包括逻辑操作符、关系操作符、算术操作符、符号操作符
vhdl的顺序语句只能出现在进程 process、函数 function、过程 procedure中,按照书写顺序自上而下,一条一条执行。
vhdl的进程(process)语句是由 顺序语句 组成的,但其本身却是 并行语句 maxplus ⅱ支持图形、符号、文本、波形等不同编辑方式
指定设计电路的输入/输出端口与目标芯片引脚的连接关系的过程称为引脚锁定
在完成设计电路的输入/输出端口与目标芯片引脚的锁定后,再次对设计电路的仿真称时序仿真或后仿真
图形文件设计结束后一定要通过 仿真,检查设计文件是否正确
以eda方式设计实现的电路设计文件,最终偶可以编程下载到 fpga 和 cpld 芯片中,完成硬件设计和验证
max+plus的文本文件类型是(后缀名).vhd 在pc上利用vhdl进行项目设计,不允许在 根目录 下进行,不惜在根目录为设计建立一个工程目录(文件夹)vhdl源程序的文件名应与 实体名 相同,否则无法通过编译 eda 名词解释
: 复杂可编程逻辑器件 : 硬件描述语言 :查找表(look-up-table):专用集成电路 :单芯片系统
:超高速硬件描述语言 :现场可编程门阵列 :寄存器传输级 :可编程片上系统
:嵌入式阵列块 :逻辑阵列块
:知识产权核
:电子设计自动化
:美国电气电子工程师协会 :在系统编程
:参数可定制红模块库 :串口(通用异步触发器)
18.元件例化:将预先设计好的设计实体定义为一个元件,然后利用特定的语句将此元件与当前的设计实体中的指定端口相连接,从而为当前设计实体引入一个新的低一级的设计层次。19.简要解释 jtag,指出 jtag 的用途:jtag:联合测试行动小组的简称,又意指其提出的一种硬件测试标准,常用于器件测试、编程下载和配置等操作。
eda技术知识总结篇三
一、有关概念
全称:专用集成电路; :现场可编程门阵列 :复杂可编程逻辑器件; 全称:硬件描述语言; 5.全定制; 6.半定制;
核;ip就是知识产权核或知识产权模块的意思
8.综合(器);综合就是将电路的高级语言(如行为描述)转换为低级的,可与fpga/cpld的基本结构相映射的网表文件或程序。
9.适配(器);适配器也称结构综合器,它的功能是将综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件。
10.功能仿真;是直接对vhdl、原理图描述或其他描述形式的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求
11.时序仿真;就是接近真实器件运行特性的仿真,仿真文件中已包含了器件硬件特性参数,因而,仿真精度高。
12.编程下载;把适配后生成的下载或配置文件,通过编程器或编程电缆向fpga或cpld下载,以便进行硬件测试和验证 ;可编程只读存储器 ;可编程逻辑阵列 ;可编程阵列逻辑 16.查找表; 17.乘积项;
18.实体;vhdl实体作为一个设计实体(独立的电路功能结构)的组成部分,其功能是对这个设计实体与外部电路进行接口描述。
19.结构体;结构体是实体所定义实体中的一个组成部分。结构体描述设计实体的内部结构和外部设计实体端口间的逻辑关系。
20.元件例化;元件例化意味着在当前结构体内定义了一个新的设计层次,这个设计层次的总称叫元件,但它可以以不同的形式出现。?? 21.时钟进程; 22.三态; 23.线与; 24.数据对象;
25.变量;变量是一个局部量,只能在进程和子程序中使用,变量的赋值是立即发生的,不存在任何延时行为。
26.信号;信号是硬件系统的基本数据对象,它的性质类似于连接线。信号可以作为设计实体中并行语句模块间的信息交流通道
型状态机;异步输出状态机,输出仅为当前状态的函数,在输入发生变化时还必须等待时钟的到来。
型状态机;同步输出状态机,输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的。不依赖于时钟的同步。
注意:
1.<= 对信号signal的赋值 := 是对变量variable的赋值
2.程序的实体名必须和文件名一致,例1中二输入与门的文件名必须为yumen
一、有关概念
asic全称;fpga和cpld全称;vhdl全称;全定制;半定制; ip核;综合(器);适配(器);功能仿真;时序仿真;编程下载;prom;pla;pal;查找表;乘积项;实体;结构体;元件例化;时钟进程;三态;线与; 数据对象;变量;信号; moore型状态机;mealy型状态机。
二、程序分析及设计
1、二输入与门的vhdl语言设计。library ieee;use ;entity yumen is
port(a, b : in bit;
y : out bit);end entity yumen;architecture one of yumen is begin y <= a and b;end architecture one;
2、带有异步复位和同步时钟使能的6进制计数器vhdl语言设计。
library ieee;use ;use ;entity jinzhi is port(clk,rst,en : in std_logic;cq : out std_logic_vector(2 downto 0);cout : out std_logic);end jinzhi;architecture behav of jinzhi is begin process(clk, rst, en)variable cqi : std_logic_vector(2 downto 0);begin if rst = '1' then cqi :=(others =>'0');--计数器复位 elsif clk'event and clk='1' then--检测时钟上升沿 if en = '1' then--检测是否允许计数 if cqi < 5 then cqi := cqi + 1;--允许计数
else cqi :=(others =>'0');--大于5,计数值清零 end if;end if;end if;if cqi = 5 then cout <= '1';--计数大于5,输出进位信号 else cout <= '0';end if;cq <= cqi;--将计数值向端口输出 end process;end behav;
3、用vhdl语言设计2选1数据选择器。
library ieee;use ;entity erxuanyi is port(a, b, s: in bit;y : out bit);end erxuanyi;architecture one of erxuanyi is begin process(a,b,s)begin if s = '0' then y <= a;else y <= b;end if;end process;end;
4、边沿型t、d触发器vhdl语言设计。--d触发器
library ieee;use ;entity dff is port(clk : in std_logic;d : in std_logic;q : out std_logic);end;architecture bhv of dff is signal q1 : std_logic;begin process(clk)begin if clk'event and clk = '1' then q1 <= d;end if;end process;q <= q1;end bhv;
--t触发器
有clk且为1的时候,t与当前状态异或
library ieee;use ;entity tff is port(clk : in std_logic;t : in std_logic;q : out std_logic);end;architecture bhv of tff is signal q1 : std_logic;begin process(clk)begin if clk'event and clk = '1' then q1 <= q1 xor t;end if;end process;q <= q1;end bhv;
5、带并行置数的8位右移移位寄存器vhdl语言设计。
library ieee;use ;entity shfrt is port(clk,load: in std_logic;
din: in std_logic_vector(7 downto 0);
qb:out std_logic);end shfrt;
architecture behav of shfrt is begin process(clk,load)
variable reg8: std_logic_vector(7 to 0);begin
if clk'event and clk='1' then
if load='1' then reg8:=din;
else reg8(6 downto 0):=reg8(7 downto 1);
end if;
end if;
qb<=reg8(0);end process;end behav;--说明:当clk有上升沿,而且load为1的时候把din的值赋给reg8,如果clk有上升沿,而且load为0的时候把reg8的高7为赋给低7位(注意此时最高位不变)6、1位半加器vhdl语言设计。(布尔逻辑描述)library ieee;use ;entity banjia is port(a,b : in std_logic;co,so : out std_logic);end entity banjia;architecture fh1 of banjia is begin so <= not(a xor(not b));co <= a and b;end architecture fh1;
7、用vhdl语言设计实现四选一数据选择器。
library ieee;use ;entity sixuan is port(a, b, c , d: in bit;
s: in std_logic_vector(1 downto 0);y : out bit);end sixuan;architecture one of sixuan is begin process(a,b,c,d,s)begin case s(1 downto 0)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;
8、用vhdl语言实现三态门设计。
library ieee;use ;entity santai is port(enable : in std_logic;datain : in std_logic_vector(7 downto 0);dataout : out std_logic_vector(7 downto 0));end santai;architecture bhv of santai is begin process(enable,datain)begin if enable = '1' then dataout <= datain;else dataout <=“zzzzzzzz”;end if;end process;end bhv;
9、设有vhdl描述的半加器h_adder和或门or2,试通过层次化设计思想设计由半加器和或门构成的一位二进制全加器的vhdl程序。全加器f_adder电路结构组成图如下所示。
半加器h_adder library ieee;use ;entity h_adder is port(a,b : in std_logic;co,so : out std_logic);end entity h_adder;architecture fh1 of h_adder is begin so <=(a or b)and(a nand b);co <= not(a nand b);end architecture fh1;
或门 or2a library ieee;use ;entity or2a is port(a, b :in std_logic;c : out std_logic);end entity or2a;architecture one of or2a is begin c <= a or b;end architecture one;
元件例化adder library ieee;use ;entity adder is port(ain,bin,cin:in std_logic;
cout,sum :out std_logic);end entity adder;architecture fd1 of adder is component h_adder
port(a,b:in std_logic;
co,so:out std_logic);end component;component or2a
port(a,b:in std_logic;
c:out std_logic);end component;signal d,e,f:std_logic;begin u1 : 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 architecture fd1;
eda技术知识总结篇四
名词解释:
eda:electronic design auto mation 电子设计自动化 pld:programmable logic device 可编程逻辑器件 ldpld:低密度可编程逻辑器件 hdpld:高密度可编程逻辑器件
prom:programmable read only memory 可编程只读存储器 pla:programmable logic array 可编程逻辑阵列 pal:programmable array logic 可编程阵列逻辑 gal:generic attay logic 通用阵列逻辑
epld:erasable programmable logic device 可擦除可编程逻辑器件 cpld:complex programmable logic device 复杂可编程逻辑器件 fpga:现场可编程门阵列
otp:one time programmable 一次性编程器件 mtp:many time programmable 多次编程器件 isp:在系统可编程 简答:
1、eda设计流程:设计准备;设计输入←→功能仿真(图形输入方式,文本输入方式,波形输入方式);设计处理←→时序仿真(设计编译和检查,设计优化和综合,适配和分割,布局和布线,生成编程数据文件);设计效验;器件编程;器件测试和设计验证;设计完成。
2、硬件描述语言:vhdl:
1、具有强大的功能,覆盖面广,描述功能强
2、有良好的可读性
3、有良好的可移植性
4、可以延长设计的生命周期
5、支持对大规模设计的分解和已有设计的再利用
6、有利于保护知识产权
verivog hdl:适合算法级,寄存器传输级,逻辑级,门级和版图级等各个层次和电路设计和描述。最大的优点是设计与工艺无关性。
vhdl设计实体的基本机构图。
1、库,程序包:libtaty ieee;
use ;
2、实体entity 实名体
is
generic(类属表);--类属参数声明。
port(端口表);--端口声明
end实名体
端口方向:in-输入
out-输出
inout-双向
buffer-具有读功能的输出
3、结构体:architecture结构体名of实体名is [信号声明语句]:--为内部信号名称及类型声明 begin [功能描述语句] end architectvre 结构实体名;
4、vhdl文字规则:
1、数制#数值#
例:10#170#--十进制数值文字
2、数制基数符号“数值字符串” 例:b“111011110”;--二进制数数组
3、标识符:以字母开头,后面跟若干字母,数字或单个下划线,但最后不能为下划线。
5、vhdl对据对象:
1、变量:是一个局部量,只能在进程函数和进程中声明和使用。
variable变量名:数据类型【:=初始值】; 2.信号描述硬件系统的基本数据对象。
signal信号名:数据类型【:=初值】
标准逻辑位:
1、未初始化的u;
2、强未知的x;
3、强0的0;
4、强1的1;
5、高阻态z
6、弱未知的w;
7、弱0的l;
8、弱1的h;
9、忽略-verilog hdl具有行为描述和结构描述功能。
行为描述包括:系统级、算法级、寄存器传输级。jk触发器
library ieee;use ;entity myjkff is port(j,k,clr:in std_logic;clk:in std_logic;q,qn:buffer std_logic);end myjkff;architecture one of myjkff is begin process(j,k,clr,clk)variable jk:std_logic_vector(1 dowmto 0)begin jk:=(j & k);if clr=’0’then q<=’0’;qn<=’1’;
elseif clk’event and clk=’0’then case jk is when “00”=>q<=q;qn<=qn;when “01”=>q<=’0’;qn<=’1’;when “10”=>q<=’1’;qn<=’0’;when “11”=>q<=not q;qn<=not qn;when others=>null;end case;end if;end process;end one;
8选一数据选择器
library ieee;use ;entity vhdl1 is port(s1,s2,s3: in std_logic;a,b,c,d,e,f,j,h: in std_logic;z: out std_logic);end vhdl1;architecture example7 of vhdl1 is signal s: std_logic_vector(2 downto 0);begin s<=s1&s2&s3process(s1,s2,s3,a,b,c,d,e,f,j,h)begin case s is when “000”=>z<=a;when “001”=>z<=b;when “010”=>z<=c;when “011”=>z<=d;when “100”=>z<=e;when “101”=>z<=f;when “110”=>z<=j;when “111”=>z<=h;when others=>z<='x';end case;end process;end example7;
十五进止加法计数器
library ieee;use ;
use ;
entity vhdl1 is port(clk,rst,ena:in std_logic;
q:buffer std_logic_vector(3 downto 0);
cout:out std_logic);end vhdl1;
architecture one of vhdl1 is begin process(clk,rst,ena)begin if rst='1' then q<=“0000”;elsif clk'event and clk='1' then if ena='1' then q<=q+1;if q=“1110” then q<=“0000”;end if;end if;cout<=q(0)and q(1)and q(2)and q(3);end if;end process;end one;
eda技术知识总结篇五
一.名词解释
eda
电子自动化设计
electronic design automation fpga
现场可编程门阵列
field programmable gate array cpld
复杂可编程逻辑器件 complex programmable logic device asic
特定用途集成电路
application specific integrated circuit ip
知识产权
intellectual property soc
片上系统
system on a chip fsm
有限状态机
finite state machine mpw
多用途晶圆
multi project wafer
dsp
数字信号处理器
digital signal processor mcu
微程序控制器
micro control unit hdl
硬件表述语言
hardware description language vhdl 超高速集成电路硬件描述语言
very high speed integrated circuit hardware description language
二.简答题
-down方法:从系统硬件的高层次抽象描述向低层次物理描述的一系列转化过程。从顶向下设计由功能级,行为级描述开始;寄存器传输(rtl)级描述为第一个中间结果,再将rtl级描述由逻辑综合网表或电路图;利用eda工具将网表自动转换换成目标文件下载到现场可编程门阵列|复杂可编程逻辑器件或通过自动布局布线设计成专用集成电路,从而得到电路与系统的物理实现。
2.逻辑综合主要通过综合工具,依据设计人员设定的时序,面积等约束条件,将与工艺无关的rtl级的电路逻辑描述程序,转化为与工艺相关的电路,是将程序设计转化为硬件实现的重要环节。
3.简述可编程器件与asic在设计应用成本等方面的优缺点
面向可编程逻辑器件的设计其设计投入资金小,风险小,开发周期短,调试灵活,易学易用,而asic设计的设计资金投入大,流片费用都很昂贵,研发投片制作其有一定的失败风险,且其开发周期较长,调试改动设计都比较困难,不过,产品进入大批量生产后,asic成品的成本往往低于可编程器件成本。
-down过程分为:行为级描述,寄存器传输(rtl)级描述,逻辑综合,物理实现。
描述方式:行为级描述,rtl级描述方式,结构级描述方式。
6.仿真过程:行为级仿真,rtl仿真,门级仿真,后仿真。
-down设计方法特点:
1)在系统设计早期就能发现设计中存在的问题,并尽可能在早期设计阶段就能解决问题。
2)自动化
-down优势
1)在系统设计早期发现设计中存在的问题,提高设计的一次成功率。
2)大大缩短了系统设计的周期,减少系统开发所耗用的时间。
3)易于系统划分和项目管理,使几十万乃至几百万的大规模复杂数字电路的设计成为可能。
4)设计效率提高,可减少设计人员。
5)通过设计共享,避免重复设计。
:指电子技术高层设计阶段中所采用的硬件描述语言。
特点:
1、hdl以行为级描述见长,它能从比较抽象的角度描述电子实体的行为,能够进行早期仿真。
2、hdl能够进行结构化描述,它能从具体的角度描述电子实体结构,便于存档,便于共享。
3、hdl具备了从比较抽象到比较具体的多个层面上进行混合描述能力,降低了硬件电路设计难度。
4、既能被仿真又能被综合。
特点:
1)通用型好,适用面广
2)重用性好
3)可靠性好
4)以行为级描述见长。
分为软核,硬核,固核
软核:第二阶段,寄存器级设计结果,且经过rtl级仿真验证。通常以hdl语言形式提交。
固核:第四阶段,经过fpga实物验证的设计结果。通常以门级网表的形式提交。
硬核:第四阶段,经过asic工艺验证的设计结果。通常以版图的形式提交。
三者的价值:
从fpga角度看固核最有价值
从asic角度看硬核最有价值
软核则由于它与工艺和器件均无关,具有高度灵活性,从而具有独特价值。
固核硬化:将固核转化为硬核。
硬核软化:因为硬核必须用过交换或出售才能实现价值最大化。而在硬核交换过程中,为了保护硬核知识产权,ip提供者往往将硬核以黑匣子形式提供给用户,同时能将硬化软化,即采用硬件描述语言对硬核的功能进行行为级描述,通过使用该行为级描述,在保护匣子具体内容的同时,仍可进行ip仿真。
/cpld在eda中具有重要作用
1)vhdl程序用过fpga/cpld可以得到eda设计的最终产品,在产品数据较小时快速占领市场。
2)vhdl程序通过fpga/cpld验证可以形成固核具有一定商品价值。
3)vhdl程序的fpga/cpld验证试验是一种asic设计的硬件仿真工具。
13.并行语句和顺序语句在使用上有哪些差异:
1)并发语句只能够出现在并发语句结构中,如结构体,block等,并发语句的执行与其在程序中的书写顺序无关;
2)顺序语句只能够出现在顺序语句结构中,如process,过程,函数等结构中,其执行与书写顺序相关,写在前面的语句先执行,写在后面的依据后执行。14.数据类型是用标示符表征某个或某个数值的集合,数据类型按照定义可分为标准预定义数据类型和用户自定义数据类型,还有用户自定义数据类型。在vhdl中若某个对象被声明为某种类型,其值必须在该数据类型所限定的取值范围之中,且只有相同的数据类型才能做赋值或运算,不同数据类型的数据必须通过类型转换一致后,才能运算。故说vhdl语言是强数据类型的描述语言。
15.描述行为语言:信号赋值语言,进程语句,子程序,块语句,断言语句。
描述结构语句:元件语句(component),生成语句(generate),参数说明语句(generic)
16.并行信号赋值语句:一般信号赋值,条件信号赋值,选择信号赋值。
17.什么是eda?
eda技术是一种以计算机为基本工作平台,利用计算机图形学,拓扑逻辑学,计算数学以及人工智能学等多种计算机应用学科的最新成果而开发出来的一整套软件工具,是一种帮助电子设计工程师从事电子元件产品和系统设计的综合设计,电子设计自动化技术,方法一般采用自顶向下的设计方法,也叫正向设计,它是针对传统的自底向上的设计方法而提出的。
18.什么是ip核?学习vhdl与掌握ip核技术的关系四什么?
ip核是具有知识产权的集成电路芯核的简称,其作用是把一组拥有知识产权的电路设计集合在一起,构成芯片的基本单位,以供设计时“搭积木”之用。
19.信号赋值语句在进程做并行语句,并发执行,与语句所处位置无关。
信号赋值语句在进程内或子程序内做顺序语句,按顺序执行,与语句所处位置无关。
信号赋值语句符号为“<=” 变量赋值符号位”:=”
用于信号赋值动作,不立即生效
用于变量赋值动作,会立即生效
—hdl软件工具对vhdl程序进行仿真方法有哪些? 利用active—hdl软件工具对vhdl程序进行仿真时,常用的三种仿真方法:
1)用图形化界面加激励(或手动测试加激励)方法简单,常用于初学者或简单的小程序仿真。
2)编写测试平台文件(或编写testbench)的仿真方法可以方便地使用vhdl编写做激励文件。常用于工程设计实践,尤其适用于需要反复多次仿真或测试激励的跨平台移植。
3)编写宏文件的仿真方法用命令行,批处理文件方式编写激励,常用于需要多次仿真时,一次性编写激励,多次仿真时反复使用。
21.进程的“敏感信号”,也称敏感表,是进程的激活条件,可由一个信号或多个信号组成之间用“,”隔开。
当敏感信号表中的任意一个信号有事件发生,即发生任意变化,此时,进程被激活,进程中的语句将从上到下逐句执行一遍,当最后一条语句执行完毕后,进程即进入等待挂起状态,直到下一次敏感表中的信号有时间发生,进程再次被激活,如此循环往复。
程序的组成部分包括哪些?
实体:描述设计单元的外围接口信号和内部参数。
构造体:描述设计单元的内部结构和逻辑行为。
配置:为设计单元从多个构造体中选择合适的构造体或从库中选取合适的元件以便于进行设计单元的仿真或综合。
程序包:存放各设计模块都能共享的数据类型,常熟和子程序。
库:存放已经编译了的元件和程序包,以便在设计单元中使用,库可由系统工程师的自信设计或由asic芯片制造商提供。
23.端口方向有哪几种? 端口:
in:输入端口,在设计单元内部只可读,在设计单元内不可对其赋值。
out:输出端口,在设计单元内部只可写,不可反馈至设计单元内部作逻辑电路的输入型号。
inout:输入通道和输出通道共享引脚的双向端口,在设计单元内部分时可读可写,需要控制信号控制何时读,何时写,输入和输出通道不能同时有效。
buffer:缓冲输出端口,可反馈至设计单元内部作为逻辑电路的输入信号,故可在设计单元内部可读可写。
linkage:链接端口,无指定方向,可以与任意方向信号链接。
有哪几种描述方式?分别用于什么场合?
逻辑综合:在top-down流程中,eda软件可以将源程序自动转换为描述底层逻辑门互联关系的门级网表,从而与最终的可编程器件或asic硬件实现相对应。
行为级描述方式是抽象程度最高的电路建模方式,源程序主要描述电路的输出端口随输入变化而变化规律,程序描述贴近人类高级语言,不可被综合。
寄存器级通过描述数据从输入到输出的运算处理按时了电路结构综合。结构描述方式是层次化设计思想的体现,是描述电路硬件连接的建模方式,源程序可否被综合,依赖被调用元件可综合否。
25.什么是数据对象?常用的数据对象有哪些几种? 常用数据对象:信号,变量,常量
在vhdl程序中凡是可以被赋值的对象称为数据对象。
26.信号延时有哪几种?它们有何异同? 信号延时:
传播延时:直接模拟导线上信号的延时。任何信号传入导线的一段,经过一段延时信号必须从导线另一段输出。
惯性延时:模拟某类元件的延时特征,信号传入软件后,在指定时间内输入信号必须保持不变,元件的输出端才会有响应。
27.什么是数据类型?它可以分为哪几大种?每一种类型中包括哪些具体类型? 数据类型:标准数据类型,用户自定义数据类型,用户自定义子类型。
标准数据类是在vhdl预定义库中定义的数据类型,在使用时不需要作参考库和程序包申明。
位、矢量位、整数、自然数。正整数、实数、布尔量、字符、字符串、时间、错误等级。用户自定义数据类型: 在vhdl中用户还可以自己定义所需数据类型。语法格式:type <数据类型> is 数据类型定义;
枚举类型、数组类型、存取类型、文件类型、记录类型、时间类型。用户自定义子类型:
用户自定义的子类型,是对已定义数据类型取值范围加以限制得到的子集。语法格式:subtype <子类型名> is 原数据类型名 [范围]
中操作符主要有哪几类?它们都分为哪些主要元素?
逻辑运算符: not(非)and(与)or(或)nand(或与)
nor(或非)xor(异或)算数运算符:+ *能够真正被综合,mod rem 分母的操作数为2乘方的书,逻辑电路综合是可能的。
29.什么是层次化?
层次化设计基于电子系统的结构化建模方式,对系统的功能和结构进行描述,层次化设计奖系统逐级划分,将较独立的功能或逻辑电路单独建模,与参考库中的底层元件一起调用。作为可调用元件,在确保正确的情况下,调入高层次的设计中作为实例使用,在系统设计中,采用层次化设计方法,可以有效地简化设计难度,明确系统架构,促进团队合作和共享。
30.什么是组合逻辑?其vhdl程序设计有何特点?
组合逻辑就是指数字电路在任何时刻仅仅取决于该时刻数字电路的输入,与历史输入无关。
用vhdl描述组合逻辑电路,使用并行语句或使用进程。
31.什么是时序逻辑?其vhdl程序设计与组合逻辑的有何不同?
时序逻辑电路指数字电路在任何时刻的输出不仅取决于该时刻数字电路输入,而且取决于电路原来状态,或者说还与历史输入有关。
用vhdl描述时序电路:必须使用到进程。
32.常用eda工具:active-hdl,fpga-express,ise,cadence,verilog-xl,nc-verilog,maxplus-ii.33.‘u’初始状态
‘x’不定态
‘0’强0态
‘1’强1态
‘z’高阻态
‘l’弱0态 ‘h’弱1态
‘w’ 弱补丁太 ‘-’无关态
:输出由状态机的输入和状态机的状态共同决定。
moore:输出仅与状态机的状态有关,与状态机的输入无关。