
电子设计自动化.ppt
116页第 10 章电子设计自动化第第10章章 电子设计自动化电子设计自动化第第 1 节节 概述概述第第 2 节节ABEL--HDL语言语言第第 3 节节 PAC-Designer 软件的使用软件的使用第第 4 节节 ispPAC器件与器件与PAC-Designer的使用的使用第第1节节 概述概述一、一、EDA技术的发展过程技术的发展过程EDA技术伴随着计算机、集成电路、电子系统设计的发展,经历了三个发展阶段:计算机辅助工程设计计算机辅助工程设计CAE ((CAE: Computer Assist Engineering Design))电子系统设计自动化电子系统设计自动化ESDA ((ESDA: Electronic System Design Automation))计算机辅助设计计算机辅助设计CAD ((CAD::Computer Assist Design))主要内容:主要内容:① 大规模可编程逻辑器件;② 硬件描述语言;③ 软件开发工具;④ 实验开发系统特点:特点:硬件设计软件化;设计过程自动化; 可仿真; 在系统编程;设计效率高; 可实现片上系统。
二、二、EDA技术的特点与主要内容技术的特点与主要内容三、三、 EDA的工程设计流程的工程设计流程第第2节节 ABEL-HDL语言语言 美国美国DATA I/O公司研制开发公司研制开发•层次结构的逻辑描述语言层次结构的逻辑描述语言•用于可编程逻辑电路设计用于可编程逻辑电路设计•支持多种输入形式:支持多种输入形式: 逻辑方程逻辑方程 状态图状态图 真值表真值表ABEL-HDL语言的基本元素和语言的基本元素和基本语法规则基本语法规则•合法的合法的ASCII字符字符 • 数据数据• 特殊常量特殊常量 •字符串字符串 •标识符标识符 •保留标识符保留标识符(关键字关键字) •注释注释 •运算符运算符 •表达式表达式 •布尔方程布尔方程 •集合与集合运算集合与集合运算 •块块 •实变量与哑变量实变量与哑变量 •基本语法规则基本语法规则 ABEL-HDL语言设计文件——ABEL-HDL源文件设计的基本单位——模块(一个模块或多个模块)层次结构组织:顶层一个模块——总体轮廓低层模块——子功能块模块经过编译、优化、连接、模拟、器件适配等步骤,生成一个JEDEC格式的文件最后将JEDEC文件下载到器件中,就完成了对器件的编程。
合法的合法的ASCII字符字符 •小写字母 a~z •大写字母 A~Z •数字 0~9 •进格 Tab •空格 space •其它字符 ~ ! @ # $ % ^ & * ( ) _ + | ` - = \ { } [ ] : “ ; ‘< > ? , . /共96个 数据数据 数制名 基数 符号 举例二进制 2 ^b ^b1011八进制 8 ^o ^o13十进制 10 ^d(缺省) ^d11(或11)十六进制 16 ^h ^hb使用基数指示字@RADIX改变缺省的数制第五种数制 用字符串来表示,字母换成ASCII码 X= 'a' 等价于X= ^H61 ;X= 'abc' 等价于X= ^H616263 特殊常量特殊常量 特殊常量符号 常量值功能说明.C. 时钟输入(电平按低-高-低变化).D. 时钟下降沿(电平按高-低变化).F. 浮动输入或输出信号.K. 时钟输入(电平按高-低-高变化).P. 寄存器预置数.SVn. N=2-9,驱动输入到超级电平2-9.U. 时钟上升沿(电平按低-高变化).X. 任意态.Z. 高阻态字符串字符串 •用单引号括起来的包括空格在内的ASCII码字符序列。
•用于标题语句、模块语句等场合•若要在字符串中使用单引号“’”或反斜线“\”,则需在前面加一反斜线“\”如:“It\’s an example ”实际是“It’s an example ”标识符标识符 用来标识器件、管脚、节点、集合、输入和输出信号、用来标识器件、管脚、节点、集合、输入和输出信号、常量、宏、变量等常量、宏、变量等 •1.标识符必须以字母或下划线开头除第一个字符外,标识符可以包含大、小写字母,数字,波浪号(~)和下划线( )标识符最长不超过31个字符,否则显示出错•2.标识符中字母有大小写之分,如:out, OUT, ouT为不同标识符•3.标识符中不能使用空格,单词中的分隔需用下划线 保留标识符保留标识符( (关键字关键字) ) 关键字不分大、小写,可以用大写、小写或混合字体输入在ispEXPERT System中,用ABEL-HDL语言输入时,关键字会自动变成蓝色要特别注意关键词不能用来给器件、管脚、信号等命名,关键词用错场合将报错 关关 键键 字字 功功 能能 说说 明明Interface 功能模块接口语句(低层)功能模块接口语句(低层)Interface 功能模块接口语句(顶层)功能模块接口语句(顶层)Istype 属性说明语句属性说明语句Library 库引用语句库引用语句Macro 宏说明语句宏说明语句Module 模块开始语句模块开始语句Node 节点说明语句节点说明语句Options 控制选项定义语句控制选项定义语句Pin 引脚说明语句引脚说明语句Property 特征说明语句特征说明语句 关关 键键 字字 功功 能能 说说 明明 Async_reset 异步复位状态描述语句异步复位状态描述语句 Case-Endcase 条件选择语句条件选择语句 Cycle 周期关键字周期关键字 Declarations 说明段关键字说明段关键字 Device 器件说明语句器件说明语句 End 模块结束语句模块结束语句 Equations 逻辑方程关键字逻辑方程关键字Functional_block 功能模块说明语句功能模块说明语句Fuses 熔丝状态说明语句熔丝状态说明语句 Goto 无条件转移语句无条件转移语句If-Then-Else 条件转移语句(只能用在状态图输入)条件转移语句(只能用在状态图输入)关关 键键 字字 功功 能能 说说 明明State 状态说明语句状态说明语句 State_diagram 状态图关键字状态图关键字State_register 状态寄存器说明语句状态寄存器说明语句Sync_reset 同步复位状态描述语句同步复位状态描述语句Test_vectors 测试向量测试向量Title 标题语句标题语句Trace 跟踪选项关键字跟踪选项关键字Truth_table 真值表关键字真值表关键字Wait 等待关键字等待关键字When-Then-Else 条件转移语句条件转移语句(只能用在方程中)(只能用在方程中)With-Endwith 转移方程语句转移方程语句Xor_factors 异或因子关键字异或因子关键字注释注释 目目的的:使源文件易于理解,不影响文件的含义。
在ispEXPERT System中,注释的内容会自动变成绿色两种注释方法两种注释方法:1.一个双引号(“)开始,以另一个双引号(”)结束或以行的末尾结束;2. 以一个双斜线(//)开始,以行的末尾结束 例: EQUATIONS //逻辑描述 EQUATIONS “逻辑描述运算符运算符 •逻辑运算符逻辑运算符 •算术运算符算术运算符 •关系运算符关系运算符 •赋值运算符赋值运算符 逻辑运算符 运算符运算符 说说 明明 ! 非非(取二进制反码取二进制反码) & 与与 # 或或 $ 异或异或 !$ 同或同或(异或非异或非) 3&5即为即为(^B011)&(^B101) 逐位相与后结果是逐位相与后结果是1 3#5 =??算术运算符 运算符运算符 举例举例 说明说明-- --A 求补(负)求补(负)-- A--B 减法减法++ A++B 加法加法 下述运算符不能用于集合运算下述运算符不能用于集合运算* A*B 乘法乘法/ A/B 无符号整数除法无符号整数除法% A%B 取模:求取模:求A/B的余数的余数<< A<> A>>B A右移右移B位位 关系运算符 运算符运算符 说明说明= = 等于等于!= 不等于不等于< 小于小于<= 小于或等于小于或等于> 大于大于>= 大于或等于大于或等于布尔方程布尔方程 •c = a & b & c & d ;• out := a&b ;•WHEN (sel = =0) THEN out = in0; • WHEN (s0= =1) THEN y=[a0,a1,a2];ELSE y=[b0,b1,b2];集合与集合运算集合与集合运算 •集合的表示 •集合的赋值 •对集合赋值的限制 •集合的运算 •集合运算规则 •集合的指针 集合的表示 集合用中括号括起来,集合的元素用‘ ,’或范围运算符‘ .. ’分隔 。
如:IN1=[A, B, C, D, E, F];OUT=[Y0, Y1, Y2, Y3];OUT = [Y0..Y3];ADD=[0, C1, C2, Q15… Q0]; 集合的赋值可以用数值或数值集合对集合赋值和比较例如集合A=[A1, A2, A3],A=[1,0,1];等效于A1=1;A2=0; A3=1 或 A=5;[A1, A2, A3] = 2等效于 A1=0;A2=1; A3=0 ; 用于集合赋值或比较的数要转换成二进制形式,并遵从下列规则:如果该二进制数的有效位多于集合中元素的个数,要从左边截去多余的位 如果该二进制数的有效位少于集合中的元素个数,要从左边用0补齐缺少的位例:[A,B]=^B1101;等效于[A,B]=^B01;或[A,B]=^B1;单个信号对集合赋值时,则用此信号对每个元素赋值如: [c,d] =a&b;等效于c= a&b;和d= a&b;对集合赋值的限制 •集合中同时含有组合输出和寄存器输出的元素时,不能将该集合放在方程左侧,因为所用赋值运算无论是“=”还是‘:=’,都是对集合中所有元素进行赋值,这样总有一部分元素与赋值类型不符。
集合的运算 绝大多数运算符都可以对集合进行运算 !&+-#$!$= =!=<:= <=>>=集合运算规则 表达式 运 算 结 果! Ak [!ak, !ak-1,…,! a1]- Ak ! Ak +1Ak .OE [ak.OE, ak-1.OE,…, a1.OE]Ak & Bk [ak& bk, ak-1& bk-1,…, a1& b1]Ak # Bk [ak#bk, ak-1# bk-1,…, a1# b1]Ak $ Bk [ak$ bk, ak-1$ bk-1,…, a1$ b1]Ak!$ Bk [ak!$ bk, ak-1!$ bk-1,…, a1!$ b1]Ak = = Bk (ak= =bk,)&(ak-1= = bk-1)&…&(a1= = b1)块块 •块是括在大括号“{}”内的ASCII码文本•块用在状态图、逻辑方程、宏或标识符中,使逻辑描述更加简洁•一个块可以只占一行,也可以占用多行,块中也可以嵌块 块块 •{This is a block.}• {A = B#C;D = [0,1]+[1,0];A = B $ C;}• {IN1=A&B;{OUT=C#D;}}实变量与哑变量 哑变量用于宏、模块或指示字,哑变量以“?”做前缀,用以指明需要由实变量来替代。
换言之,哑变量的位置是保留给实变量的,程序编译时,哑变量被实变量替换 基本语法规则基本语法规则 •一行最多不得超过150个字符• 一个语句可以分成数行,一行中也可以包含多个语句语句以分号“;”结束,这就改变了一般的行结束形式• 关键词、标识符及数字之间至少要用一个空格将它们隔开而一系列标识符之间也可以用逗号分隔;表达式中的数字与标识符间可由运算符分隔;圆括号也可起到分隔的作用 ABELABEL语言的基本结构语言的基本结构 •模块开始段模块开始段 •说明段说明段 •逻辑描述段逻辑描述段 •测试向量段测试向量段 •模块结束段模块结束段 模块开始段模块开始段•1. 模块开始语句• 格式:module 模块名[(哑变量名[,哑变量名]…)]•module表明一个模块的开始,是模块中不可缺少的部分模块名是用户定义的模块的名称哑变量名是可选的与模块开始语句MODULE配对的是模块结束语句END•例:MODULE and_or_not•模块名超过8个字符,编译程序取前8个字符并给出提示模块开始段模块开始段•2. 功能模块接口语句•低层模块中的格式:INTERFACE(输入/集合[=端口值]->输出/集合:>双向/集合);•例:INTERFACE (ia1,ia2,ia3->oa1);• 功能模块接口语句在层次化结构中使用。
在低层模块的开始段用INTERFACE说明其输入 /输出信号而高层模块中,不是在模块开始段,而是在模块的说明段用INTERFACE对即将使用的低层模块予以说明模块开始段模块开始段•3. 标题语句•格式:TITLE '字符串'•标题语句用来赋予模块一个标题,标记用户的一些信息标题必须用单引号括起来该语句是可选的•例 : TITLE '6 INPUT AND_OR_NOT GATES'•它说明了这是一个6输入与或非门说明段说明段 •说明段关键字说明段关键字 – 格式:格式:DECLARATIONS •器件说明器件说明–格式:器件标识符格式:器件标识符 device ‘实际器件实际器件’;; •引脚说明语句引脚说明语句–格格式式::[!]引引脚脚标标识识符符[,,[!]引引脚脚标标识识符符 ...] pin [引脚号引脚号[,引脚号,引脚号..]] [ ISTYPE ‘属性属性’];;–例:例: y0..y3,c0 pin 12,13,14,15,16 ISTYPE’reg’;; •节点说明语句节点说明语句 –格格式式::[!]节节点点名名[,,[!]节节点点名名…] NODE [节节点点号号…]–例:例:noa1,noa2 NODE ;; 说明段说明段•属性说明– 格式:信号名 [,信号名]… ] istype‘属性[,属性, …]’;–buffer 目标器件中寄存器输出到引脚输出之间无反相器–Com 组合输出–Reg 寄存器 说明段说明段•常量说明 –格式:常量名[,常量名,…]=表达式[,表达式,…];–y0=3*17; //y0指定值为51–y1=‘abc’; //y1指定值为^H616263–x=.X.; //x为任意值–addr=[0,1,15]; //addr是具有三个元素的集合,它们分别代表数值0、1和15。
–S=[S0,S1,S2]; //定义S为一个集合,包含三个逻辑变量–M=[M0..M8]; //用范围运算符‘ .. ’分隔 说明段说明段•宏说明–格式:宏名 MACRO[(哑变量[,哑变量],···)]块;–例:OR_M MACRO(ib1,ib2){?ib1#?ib2;} –宏调用:o1=!OR_M (noa1,noa2); –结果为:o1=!(noa1#noa2) 说明段说明段•宏也可以由ABEL-HDL语言的其它形式来定义,下面的宏是由真值表定义的NAND3 MACRO (A,B,C,Y){TRUTH_TABL([?A,?B,?C]—>?Y) [0,.x.,.x.]—>1; [.x.,0,.x.]—>1; [.x.,.x.,0]—>1; [1,1,1]—>0;}说明段说明段•库引用 –格式:LIBRARY ‘名称’– 库引用语句是在它出现的地方将指定‘名称’的文件的内容插入ABEL-HDL的源文件中,‘名称’是定义文件名的字符串,不带扩展名 说明段说明段•状态说明–格式:状态名[,状态名,…] STATE [状态值[,状态值,…]];–状态说明用来给状态命名,以便在状态图输入中使用这些状态。
–例:S0..S3 state;说明段说明段•状态寄存器说明–格式:状态寄存器名 STATE-REGISTER [ISTYPE‘属性’];–在符号状态图中,状态寄存器说明一个符号状态机名–例:sreg1 state_register; 说明段说明段•层次说明–格式:低层模块名INTERFACE(输入/集合[=端口值]->输出/集合:>双向/集合);– 例化名 FUNCTIONAL-BLOCK 低层模块名; 逻辑描述段逻辑描述段 •逻辑方程 •真值表 •状态图 逻辑描述段逻辑描述段•逻辑方程–格式:equations 变量名[?]=表达式; 变量名[?]:=表达式;–格式:WHEN 条件THEN [!] 元素=表达式;[ELSE 逻辑等式;]或 WHEN 条件THEN [!] 逻辑等式;[ELSE 逻辑等式;] 逻辑方程点后缀 说 明.ACLR 异步复位.AP 异步寄存器预置位.AR 异步寄存器复位.ASET 异步置位.CE 钟控触发器时钟使能端.CLK 边沿触发器的时钟.CLR 同步复位逻辑方程点后缀 说 明.COM 组合反馈.D D触发器的D端.FB 寄存器反馈.FC 触发模式控制.J JK触发器的J端.K JK触发器的K端.LD 锁存器D端逻辑方程点后缀 说 明.LE 锁存器锁存使能端.LH 锁存器锁存使能(H)端.OE 输出使能.PIN 引脚反馈.PR 寄存器预置位.Q 寄存器输出.R RS触发器R端逻辑方程点后缀 说 明.RE 寄存器复位.S RS触发器S端.SET 同步置位.SP 同步寄存器预置位.SR 同步寄存器复位.T T触发器T端真值表•格式:TRUTH_TABEL ( 输入 —> 输出 ) 输入 —> 输出; ……或 TRUTH_TABEL ( 输入 :> 寄存器输出) 输入 :> 寄存器输出; ……或 TRUTH_TABEL ( 输入:> 寄存器输出—>输出 ) 输入:> 寄存器输出—>输出; ……真值表TRUTH_TABEL([A,B]:>[C,D]—>E) [0,0]:>[0,1]—>1; [0,1]:>[1,0]—>0; [1,0]:>[1,1]—>1; [1,1]:>[0,0]—>1; 状态图 •(1)STATE_DIAGRAM状态图语句– 格式:STATE_DIAGRAM 状态寄存器 [—>状态输出]– STATE 状态表达式:[ 方程 ];[ 方程 ];…;状态转移语句;状态图•(2)转移语句①无条件转移语句GOTO–格式:GOTO 状态表达式;–例:STATE S0:Y=X+1;GOTO S1 ②条件转移语句IF-THEN-ELSE–格式:IF 表达式 THEN 状态表达式 [ELSE 状态表达式];状态图③选择语句CASE-ENDCASE–格式:CASE 表达式:状态表达式; [表达式:状态表达式;] …… ENDCASE; 例:STATE S0:CASE C= =0:S1; C= =1:S2; C= =2:S3; ENDCASE;状态图④转移方程语句WITH格式:转移语句 状态表达式 WITH 方程; [方程;] … 例:STATE S5 : IF a = = 1 THEN S1 WITH x := 1 ; y := 1 ; ELSE S2 WITH x := 0 ; y := 1 ; 测试向量段测试向量段 格式:test_vectors [注释] (输入向量->输出向量) [输入信号值->输出信号值;] … 例:TEST_VECTORS ([i1,i2,i3,i4,i5,i6]->o1) [0,0,0,0,0,0]->1; [0,0,1,0,1,1]->1; [1,1,1,0,0,0]->0; [1,1,1,1,1,1]->0; 模块结束段模块结束段• 格式:END [模块名] 模块结束段指示一个模块结束,是不可缺少的部分。
请看实例• 七段显示译码器七段显示译码器 •1-4数据分配器数据分配器 •16-4数据选择器数据选择器 •4位数据比较器位数据比较器 •加法器加法器 •4位格雷码位格雷码(Gray)计数器计数器 •8位移位寄存器位移位寄存器 •可逆十进制计数器可逆十进制计数器 • 任意进制加法计数器任意进制加法计数器 8421码表示的十进制数通过七段译码显示器译码后输出给七段显示器,就可显示相应的字符七段显示译码器设计要求:输入D3~D0,输出a、b、c、d、e、f、g,使能端en,低电平有效图4-2给出了七段显示译码器的框图七段显示译码器七段显示译码器七段译码器功能表en D3 D2 D1 D0 a b c d e f g 1x x x x zzzzzz z00 0 0 00 0 0 0 0 0 100 0 0 1 1 0 0 1 1 1 1 00 0 1 00 0 1 0 0 1 000 0 1 10 0 0 0 1 1 000 1 0 01 0 0 1 1 0 000 1 0 10 1 0 0 1 0 000 1 1 00 1 0 0 0 0 000 1 1 10 0 0 1 1 1 101 0 0 00 0 0 0 0 0 001 0 0 10 0 0 0 1 0 0七段显示译码器框图 MODULE bcd7 TITLE 'seven segment display decoder' //数据输入D3~D0,使能端en,低电平有效,输出a、b、c、d、e、f、g。
D3..D0 PIN; D=[D3..D0];a,b,c,d,e,f,g PIN ISTYPE'COM'; LED=[a,b,c,d,e,f,g];en PIN;x=.x.;EQUATIONSLED.OE=!en;@dcsetTRUTH_TABLE(D->[a,b,c,d,e,f,g]) 0->[0,0,0,0,0,0,1]; 1->[1,0,0,1,1,1,1]; 2->[0,0,1,0,0,1,0]; 3->[0,0,0,0,1,1,0]; 4->[1,0,0,1,1,0,0]; 5->[0,1,0,0,1,0,0]; 6->[0,1,0,0,0,0,0]; 7->[0,0,0,1,1,1,1]; 8->[0,0,0,0,0,0,0]; 9->[0,0,0,0,1,0,0];TEST_VECTORS([en,D]->LED) [1,0]->x; [0,0]->x; [0,1]->x; [0,2]->x; [0,3]->x; [0,4]->x; [0,5]->x; [0,6]->x; [0,7]->x; [0,8]->x; [0,9]->x; END1-4数据分配器数据分配器 数据分配器的功能就是将一个输入数据分时分送到多个输出端输出,也就是一路输入、多路输出。
数据分配器设计要求:D为数据输入,Y3~Y0为数据输出,S1、S0为数据控制端,en为使能端,高有效 数据分配器框图 数据分配器功能表 enS1 S0Y3 Y2 Y1 Y00x xZ Z Z Z10 00 0 0 D10 10 0 D 011 00 D 0 011 1D 0 0 0 源文件清单源文件清单 1-4数据分配器数据分配器MOUDLE dmuxTITLE '1 to 4 demultiplexer' //1-4分配器,输入D,使能en,控制S1、S0,输出Y3..Y0D,en,S1,S0 PIN;Y3..Y0 PIN istype'com';x,z=.x.,.z.;Y=[Y3..Y0];S=[S1,S0]; EQUATIONSY0=(S= =0)&D;Y1=(S= =1)&D;Y2=(S= =2)&D;Y3=(S= = 3)&D;Y.OE=en;TEST_VECTORS([en,S,D]->[Y3,Y2,Y1,Y0]) [0,x,0]->[z,z,z,z]; [0,x,1]->[z,z,z,z]; [1,0,0]->[0,0,0,0]; [1,1,1]->[0,0,1,0]; [1,2,1]->[0,1,0,0]; [1,3,1]->[1,0,0,0]; END一、一、 启动软件启动软件 启动启动ispDesign EXPERT。
在在Windows95/98下,下,选开始选开始→程序程序→Lattice Semiconductor→ispDesign EXPERT,,单击后进入项目管理器(单击后进入项目管理器(ispDesign EXPERT Project Navigator))窗口窗口称为窗口窗口称为 源文源文件窗口文件依次从上向下排列,位置越偏右,其件窗口文件依次从上向下排列,位置越偏右,其层次越低右层次越低右 半窗口的项目对应左边半窗口的项目对应左边 选中的某一选中的某一源文件所对源文件所对 应的处理过程与结果应的处理过程与结果第第3节节 ispDesign EXPERT软件的使用软件的使用 二、二、 创建新项目和器件选定创建新项目和器件选定 建立新项目的子目录:单击File下的New Project...会弹出一个对话框如图建立子目录文件夹user注意:子目录名必须为英文字母所构成 子子目目录录建建成成后后,,双双击击并并进进入入该该子子目目录录如如图图,,在在“文文件件名名((N)):”这这一一栏栏中中键键入入项项目目名名以以取取代代原原来来默默认认的的“New”。
在在创创建建新新项项目目窗窗口口里里的的项项目目类类型型((Project Type::))中中,,通通过过下下拉拉菜菜单单可可对对这这几几种种输输入入方方式式进进行行选选择择,,然然后单击保存后单击保存 接着双击接着双击Untitled((未命名),在未命名),在title((标题)文本标题)文本框中输入该项目的标题,然后开始选择目标器件框中输入该项目的标题,然后开始选择目标器件三、输入三、输入ABEL语言源文件语言源文件 1.在项目管理器窗口中打开Sourse菜单,选择New,选择ABEL-HDL Module按OK予以确认,出现图示对话框 2.键入模块、文件,在标题(Title)文本框内填上标题信息,用以说明你的设计点击OK键,屏幕上会出现图示一个文本编辑窗口,刚才键入的模块名,标题以及结束语句END已经包含在其中输入源程序、保存后退出输入源程序、保存后退出 四、四、 编译编译ABEL-HDL源文件源文件 1..在在项项目目管管理理器器窗窗口口中中选选择择所所要要编编译译的的ABEL-HDL源文件 2..双双击击右右栏栏中中的的Compile Logic项项,,源源文文件件就就被被编编译译,,如如编编译译通通过过,,则则在在Compile Logic左左边边出出现现绿绿色色“√”标标记记,,而而若若编编译译不不通通过过,,将将在在报报告告中中指指出出源源文文件件有有错错误,并将具体错误显示出来。
误,并将具体错误显示出来 3..如如想想进进一一步步地地化化简简逻逻辑辑,,可可双双击击右右栏栏的的Reduce Logic项,通过后,左边同样会出现绿色项,通过后,左边同样会出现绿色“√”标记 六、六、 仿真仿真 功能仿真是对整个系统的逻辑功能进行仿真功能仿真是对整个系统的逻辑功能进行仿真 实时仿真是在功能仿真的基础上,把器件内部实时仿真是在功能仿真的基础上,把器件内部的时间延迟考虑进去了,不同的器件,其时间延迟的时间延迟考虑进去了,不同的器件,其时间延迟也是不同的,这一点可以通过波形图观察到,因此也是不同的,这一点可以通过波形图观察到,因此实时仿真比功能仿真更进一步地接近实际情况,更实时仿真比功能仿真更进一步地接近实际情况,更具有观察价值有时候功能仿真通过了,而实时仿具有观察价值有时候功能仿真通过了,而实时仿真通不过,说明还有问题存在,需进一步改进而真通不过,说明还有问题存在,需进一步改进而如果实时仿真通过了,则可进行下载,在大多数情如果实时仿真通过了,则可进行下载,在大多数情况下都能成功况下都能成功 五、五、 编译测试向量文件编译测试向量文件(略)。
略)1)).功能仿真功能仿真 打开打开Simulator菜单,选择菜单,选择Run项,或双击项,或双击工具栏中标有工具栏中标有““!!””的按钮后,出现波形观的按钮后,出现波形观察器(察器(Waveform Viewer))窗口窗口 2)). 实时仿真实时仿真实实时时仿仿真真的的操操作作步步骤骤与与功功能能仿仿真真基基本本相同在项目管理器左窗口选中测试向量文在项目管理器左窗口选中测试向量文件,然后在右窗口中用鼠标双击件,然后在右窗口中用鼠标双击Timing Simulation项,其余操作步骤项,其余操作步骤同上 七、下载七、下载 下载就是 “烧录” 器件 1.将EDA 实验开发系统接好(电源、下载线) 2.用鼠标双击项目管理器右栏最下面一行ispdaisy chain download,会出现菊花链下载界面 3.直接点击横档上的小方钮SCAN 按钮,如果电路板连 接 无 误 , 在 下 面 窗 口 中 会 出 现 SCAN BOARD:Successful 4.单击BROWSE 按钮,选择你在上面设计中生成的JED 文件COUNT10.JED,并按OK。
5.点击横档上的小方钮Run Operation如果下载成功,在右边一个小方框中会出现PASS 字样第第4节节 ispPAC器件与器件与PAC-Designer软件的使用软件的使用 在系统可编程模拟器件可实现三种功能:在系统可编程模拟器件可实现三种功能:信号调理(放大、衰减、滤波)信号调理(放大、衰减、滤波)信号处理(求和、求差、积分等运算)信号处理(求和、求差、积分等运算)信号转换(数字信号转换成模拟信号)信号转换(数字信号转换成模拟信号)一、一、ispPAC器件器件1. ispPAC10的结构和原理的结构和原理 四四个个PAC块块的的输输出出放放大大器器的的差差分分输输出出直直接接与与四四对对模模拟拟输输出出管管脚脚相相连连除除电电源源管管脚脚Vs、、接接地地管管脚脚GND外外,,还还有有用用于于isp接接口口的的数数字字输输入入、、输输出出管管脚脚((TDI、、TDO、、TCK、、TMS、、))、、两两个个制制造造测测试试管管脚脚TEST,,以以及及用用于于自自校校正正的的数数字字输输入入管管脚脚CAL(Auto-Calibrate)、、 共共 模模 电电 压压 输输 入入 管管 脚脚CMVIN、、2.5V参参考考电电压压输输出出管管脚脚VREFOUT。
当当用用户户选选择择自自定定的的共共模模电电压压时时,,信信号号从从CMVIN管管脚脚输入ispPAC10内部模拟电路原理图有有四四个个PAC块块以以及及所所有有模模拟拟输输入入、、输输出出管管脚脚,,无无需需用用户户编编程程设设置置的的专专用用管管脚脚;;而而需需由由用用户户编编程程设设置置的内容均包含在内的内容均包含在内输入、输出信号的共模电压输入、输出信号的共模电压 1).输入共模电压范围).输入共模电压范围 输入信号最大范围和相应的共模电压范围都是增益的函数当电源电压为5V时,输入信号最大范围为1V~4V,扩展一下,典型值为0.7V~4.3V 输入共模电压VCM=(VCM++VCM-)/2,当VCM=2.5V时,只考虑前面提到的限制条件即可当VCM≠2.5V,增益大于1时,对于某一增益,当输入信号达到最大限定值时就会发生失真当电源电压为5V时,对于给定的增益G,最小VCM-=0.675+ 0.548G •VIN (V),VIN是最小峰值电压VIN=∣VIN+-VIN-∣,最大VCM+=5- VCM- (V)输入共模电压范围输入共模电压范围 2)). 输出端共模电压输出端共模电压 在用户不改变在用户不改变ispPAC器件的模拟输出端共模电压的情况下,器件的模拟输出端共模电压的情况下,输出端共模电压总为输出端共模电压总为2.5V,且与输入信号的共模电压无关。
且与输入信号的共模电压无关 当需要改变模拟输出端共模电压时,用户可通过开发软件选择当需要改变模拟输出端共模电压时,用户可通过开发软件选择用外部供给的参考电压代替默认的用外部供给的参考电压代替默认的2.5V,,这个外部供给的输出端共这个外部供给的输出端共模电压必须经模电压必须经CMVIN管脚输入,只要求该电压信号大于管脚输入,只要求该电压信号大于1.25V、、小小于于3.25V 但要注意,必须逐个对但要注意,必须逐个对ispPAC10中的四个中的四个PAC块的输出放大块的输出放大器的输出共模电压进行编程设置器的输出共模电压进行编程设置PAC块增益的设置块增益的设置1)).整数增益的设置整数增益的设置•单个输入仪用放大器的增益可设置为±1~±10之间的整数•要求的增益大于10小于20,整个电路的增益为IA1 、IA2各自增益之和•如果要求的增益大于20,可以将多个PAC块级联使用,整个电路的增益为各级联增益之积单个输入仪用放大器的增益3二个输入仪用放大器的增益202)).分数增益的设置分数增益的设置配合适当的外接电阻,ispPAC器件能提供具有任意分数增益的放大电路。
增益为5.7的PAC块配置图3)).整数比增益的设置整数比增益的设置应用整数比技术,无需外接电阻,用户可实现具有某些整数比增益的电路图中增益7/92、、 ispPAC20的结构与原理的结构与原理1)). ispPAC20的结构的结构两两个个PACPAC块块、、两两个个比比较较器器CPCP、、一一个个数数模模转转换换器器DACDAC以以及及模模拟拟布布线线区区、、配配置置存存储储器器、、参参考考电电压压、、自自校校正正、、ispisp接接口等电路口等电路ispPAC20内部电路原理图3、、ispPAC30的结构与原理的结构与原理ispPAC30内部电路原理图4. ispPAC80/81的结构和原理的结构和原理选选开开始始=> => 程程序序=> => Lattice Lattice Semiconductor Semiconductor =>=> PACPAC––DesignerDesigner后后, , 出出现现PACPAC––DesignerDesigner软软件件主主窗窗口1. 设计输入设计输入二、二、PAC-Designer软件的使用软件的使用 打开打开FileFile菜单,选择菜单,选择NewNew,,或按工具栏中快捷键,弹或按工具栏中快捷键,弹出建立新文件的对话框。
如果所用的器件是出建立新文件的对话框如果所用的器件是ispPAC10ispPAC10,,则则选择选择ispPAC10 SchematicispPAC10 Schematic后,按后,按OKOK键,或用鼠标左键双键,或用鼠标左键双击击ispPAC10 SchematicispPAC10 Schematic后,主窗口内出现后,主窗口内出现ispPAC10ispPAC10的内部的内部电路原理图,即电路原理图,即ispPAC10ispPAC10的图形输入设计界面的图形输入设计界面 ispPAC10的图形输入设计界面的图形输入设计界面用三运放组成的双二阶滤波器 只要在只要在ispPAC10的图形输入界面上添加连线、选择的图形输入界面上添加连线、选择有关参数即可完成该原理图的输入非常方便!有关参数即可完成该原理图的输入非常方便! 第一种方式输入第一种方式输入: :在在ispPAC10ispPAC10的图形输入设计界面的图形输入设计界面上,打开上,打开EditEdit菜单,选择菜单,选择SymbolSymbol项后,出现符号编辑项后,出现符号编辑对话框如图所示对话框如图所示。
可由用户编程设置的所有内容均包含在此可由用户编程设置的所有内容均包含在此对话框中,选定对话框中,选定PACblockPACblock 1 IA1 Interconnect 1 IA1 Interconnect后,按后,按EditEdit键后,或双击键后,或双击PACblockPACblock 1 IA1 1 IA1 InterconnectInterconnect后,出现内部连线对话框后,出现内部连线对话框在符号编辑对话框中,分别选定在符号编辑对话框中,分别选定PACblockPACblock 1 IA1 1 IA1 GainGain、、PACblockPACblock 1 IA2 Gain 1 IA2 Gain 、、PACblockPACblock 2 IA3 2 IA3 GainGain,,将将IA1IA1、、IA2IA2、、IA3IA3的增益设置为的增益设置为2 2、、1 1、、-3-3分别选定分别选定PACblock 1 Capacitor、、 PACblock 2 Capacitor,,将将OA1、、OA2反馈电容值设置为反馈电容值设置为15.03pF、、29.95pF。
选定选定PACblock 2 Feedback项,按项,按Edit键后,出现键后,出现反馈通道对话框用鼠标左键点击反馈通道对话框用鼠标左键点击Feedback Path enable前面的小窗口,前面的小窗口,“ ”将消失,再按将消失,再按OK键,键,电阻反馈回路断开电阻反馈回路断开仿真的内容:幅频特性、相频特性仿真的内容:幅频特性、相频特性1)). 设置仿真参数设置仿真参数 在图形输入设计界面中,打开在图形输入设计界面中,打开Options菜单,点击菜单,点击Simulator选项,出现设置仿真参数对话框设置相选项,出现设置仿真参数对话框设置相关选项、输入有关数据后,按关选项、输入有关数据后,按“确定确定”键电路特性仿真电路特性仿真 ispPAC器件的硬件接口电路是器件的硬件接口电路是IEEE1149.1-1990 JTAG测试接口将下载电缆一端接测试接口将下载电缆一端接PC机的打印口,机的打印口,另一端接含有另一端接含有+5V电源的印制板上的电源的印制板上的ispPAC器件的器件的JTAG串行接口,打开串行接口,打开Tools菜单,点击菜单,点击Download选项;或直接点击工具栏中选项;或直接点击工具栏中 按键,即可完成整按键,即可完成整个器件的编程工作。
下载后,设置参数存放于个器件的编程工作下载后,设置参数存放于ispPAC器件中的器件中的E2CMOS存储器中,整个下载过存储器中,整个下载过程只需耗时程只需耗时100ms左右此外,设计方案的下载也左右此外,设计方案的下载也可以用菊花链下载软件进行可以用菊花链下载软件进行 3. 设计方案的下载设计方案的下载 ispPAC80/81器件的内部核心电路是一个器件的内部核心电路是一个5阶滤波器,阶滤波器,其电路结构是固定的,因而用其电路结构是固定的,因而用PAC-Designer软件对软件对ispPAC80/81器件进行电路设计时,无需连线操作器件进行电路设计时,无需连线操作ispPAC80/81器件的设计输入方式有两种,第一种设计器件的设计输入方式有两种,第一种设计输入方式,只需用户通过图形输入界面对输入方式,只需用户通过图形输入界面对5阶滤波器电路阶滤波器电路的各电容值、输入仪用放大器的增益等内容进行编程设置的各电容值、输入仪用放大器的增益等内容进行编程设置即可这种方式适合熟悉即可这种方式适合熟悉5阶滤波器电路结构的专业设计阶滤波器电路结构的专业设计人员第二种设计输入方式,只要用户根据不同需要,从人员。
第二种设计输入方式,只要用户根据不同需要,从PAC-Designer软件提供的软件提供的8000多种不同类型的多种不同类型的5阶滤波器阶滤波器方案中,选中合适的方案,将其方案中,选中合适的方案,将其“填入填入”5阶滤波器这个阶滤波器这个“内核内核”中即可第二种设计输入方式对一般技术人员来中即可第二种设计输入方式对一般技术人员来说比较实用说比较实用7.5 ispPAC80/81的编程的编程 滤波器选择对话框滤波器选择对话框。












