在系统可编程技术
第 8讲
isp技术应用设计方法
TOP-DOWN 自顶向下设计
数字系统
功能模块 1 功能模块 2 …… 功能模块 n
子模块 11 子模块 12 …… 子模块 1n 子模块 21 ……
子模块 111 ……
设计准则
? 分割后最底层的模块应适合用逻辑语言进
行表达。
? 相似的功能应尽量设计成共享模块,以减
少重复设计,提高设计效率。
? 接口信号线最少:以交互信号线最少的地
方为边界划分模块。
? 结构匀称。
? 通用性好,易于移植。
1,分割准则,
2,系统的可观测性
系统的可观测性问题是指:在系统设计
中,应同时考虑功能检查和性能测试。
在系统设计的同时设计观测电路(即:观测
器),将系统内部的重要信号引向器件管脚输出,
供外部测试。
一般可将系统的关键点信号,以及具有代表
性的节点和线路上的信号,引向器件管脚输出,
供外部测试。如:时钟、同步信号等。
设计准则
设计准则
3、同步 和异步电路的选择
在设计时应尽可能采用同步电路设计,避免
使用异步电路。这样可以减少毛刺。
4、最优化设计
由于 PLD的逻辑资源、连线资源和 I/O资源
是有限的,器件的速度和性能也是有限的,因此
系统设计要考虑最优化。
两个约束条件:边界条件、最优化目标。
边界条件:指器件的资源和性能限制。
最优化目标,器件资源利用率最高。系统工作
速度最快,延时最小。布线最容易,
可实现性最强。
设计准则
例:设计一个可控加 /减运算器。
设计步骤,
1、设计项目的划分,
U1加法运算器模块
U2减法运算器模块
U3输出模式控制模块
2、顶层模块设计
3、底层模块设计
4、逻辑功能仿真
1、建立新项目
2、画出顶层原理图
3、设计底层模块 U1
4、设计底层模块
U2
5、设计底层模块 U3
6、建立测试向量文件
6、仿真
Mealy型状态机 设计 方法
Mealy型状态机输出不仅和存
储电路状态有关,还和外部输入信
号有关,即,
外部输出是内部状态和外部输
入的函数。
描述方式,
Si
Data_INi/ZOi
例,
设计一个序列检测器。要求检测器连续收到
串行码 {1101}后,输出检测标志 1,否则输出 0。
状态机设计步骤,
① 分析设计要求,列出全部可能状态;
② 状态编码;
③ 画出状态转换图;
④ 用 ABLE状态机语句描述状态机。
① 分析设计要求,列出全部可能状态,
未收到一个有效位, S0
连续收到一个有效位,S1
连续收到两个有效位,S2
连续收到两个有效位,S3
连续收到两个有效位,S4
② 状态编码,
S0=^B000
S1=^B001
S2=^B010
S3=^B011
S4=^B100
③ 状态转换图,
Si
Data_INi/ZOi 1101
S4
1/1
S0
S1
S2 S3
1/0
1/0
0/0
0/0
1/0
0/0
1/0 0/0
0/0
MODULE MEALY
CP,DATA_IN PIN;
ZO PIN ISTYPE'COM';
Q2..Q0 NODE ISTYPE'REG';
S0=^B000; S1=^B001; S2=^B010;
S3=^B011; S4=^B100;
EQUATIONS
[Q2..Q0].CLK=CP;
STATE_DIAGRAM[Q2..Q0]
STATE S0,IF DATA_IN==1 THEN S1 WITH ZO=0;
ELSE S0 WITH ZO=0;
STATE S1,IF DATA_IN==1 THEN S2 WITH ZO=0;
ELSE S0 WITH ZO=0;
STATE S2,IF DATA_IN==0 THEN S3 WITH ZO=0;
ELSE S2 WITH ZO=0;
STATE S3,IF DATA_IN==1 THEN S4 WITH ZO=1;
ELSE S0 WITH ZO=0;
STATE S4,IF DATA_IN==1 THEN S1 WITH ZO=0;
ELSE S0 WITH ZO=0;
END
MODULE MEALY
CP PIN;
DATA_IN PIN;
ZO PIN ISTYPE'COM';
Q2..Q0 NODE ISTYPE'REG';
TEST_VECTORS([CP,DATA_IN]->ZO)
[.C.,1]->.X.;
[.C.,1]->.X.;
[.C.,0]->.X.;
[.C.,1]->.X.;
[.C.,0]->.X.;
[.C.,1]->.X.;
[.C.,1]->.X.;
[.C.,1]->.X.;
[.C.,0]->.X.;
[.C.,1]->.X.;
[.C.,1]->.X.;
END
MODULE MEALY2
CP,DATA_IN PIN;
ZO PIN ISTYPE'REG';
Q2..Q0 NODE ISTYPE'REG';
S0=^B000; S1=^B001; S2=^B010;
S3=^B011; S4=^B100;
EQUATIONS
[Q2..Q0].CLK=CP; ZO.CLK=CP;
STATE_DIAGRAM[Q2..Q0]
STATE S0,IF DATA_IN==1 THEN S1 WITH ZO:=0;
ELSE S0 WITH ZO:=0;
STATE S1,IF DATA_IN==1 THEN S2 WITH ZO:=0;
ELSE S0 WITH ZO:=0;
STATE S2,IF DATA_IN==0 THEN S3 WITH ZO:=0;
ELSE S2 WITH ZO:=0;
STATE S3,IF DATA_IN==1 THEN S4 WITH ZO:=1;
ELSE S0 WITH ZO:=0;
STATE S4,IF DATA_IN==1 THEN S1 WITH ZO:=0;
ELSE S0 WITH ZO:=0;
END
More型状态机 设计 方法
Mealy型状态机输出仅和存储
电路状态有关,与外部输入无关,
即,
外部输出是内部状态的函数。
描述方式,
Si/ZOi
Data_INi
③ 状态转换图,
1101
S0/0
S1/0
S2/0
S4/1
S3/0
1
1
0
1
0
1
0
1 0
0 Si/ZOi Data_INi
MODULE more
CP,DATA_IN PIN;
ZO PIN ISTYPE'com';
Q2..Q0 NODE ISTYPE'REG';
S0=^B000; S1=^B001; S2=^B010;
S3=^B011; S4=^B100;
EQUATIONS
[Q2..Q0].CLK=CP;
STATE_DIAGRAM[Q2..Q0]
STATE S0,ZO=0;IF DATA_IN==1 THEN S1 ELSE S0;
STATE S1,ZO=0;IF DATA_IN==1 THEN S2 ELSE S0;
STATE S2,ZO=0;IF DATA_IN==0 THEN S3 ELSE S2;
STATE S3,ZO=0;IF DATA_IN==1 THEN S4 ELSE S0;
STATE S4,ZO=1;IF DATA_IN==1 THEN S1 ELSE S0;
END
第 8讲
isp技术应用设计方法
TOP-DOWN 自顶向下设计
数字系统
功能模块 1 功能模块 2 …… 功能模块 n
子模块 11 子模块 12 …… 子模块 1n 子模块 21 ……
子模块 111 ……
设计准则
? 分割后最底层的模块应适合用逻辑语言进
行表达。
? 相似的功能应尽量设计成共享模块,以减
少重复设计,提高设计效率。
? 接口信号线最少:以交互信号线最少的地
方为边界划分模块。
? 结构匀称。
? 通用性好,易于移植。
1,分割准则,
2,系统的可观测性
系统的可观测性问题是指:在系统设计
中,应同时考虑功能检查和性能测试。
在系统设计的同时设计观测电路(即:观测
器),将系统内部的重要信号引向器件管脚输出,
供外部测试。
一般可将系统的关键点信号,以及具有代表
性的节点和线路上的信号,引向器件管脚输出,
供外部测试。如:时钟、同步信号等。
设计准则
设计准则
3、同步 和异步电路的选择
在设计时应尽可能采用同步电路设计,避免
使用异步电路。这样可以减少毛刺。
4、最优化设计
由于 PLD的逻辑资源、连线资源和 I/O资源
是有限的,器件的速度和性能也是有限的,因此
系统设计要考虑最优化。
两个约束条件:边界条件、最优化目标。
边界条件:指器件的资源和性能限制。
最优化目标,器件资源利用率最高。系统工作
速度最快,延时最小。布线最容易,
可实现性最强。
设计准则
例:设计一个可控加 /减运算器。
设计步骤,
1、设计项目的划分,
U1加法运算器模块
U2减法运算器模块
U3输出模式控制模块
2、顶层模块设计
3、底层模块设计
4、逻辑功能仿真
1、建立新项目
2、画出顶层原理图
3、设计底层模块 U1
4、设计底层模块
U2
5、设计底层模块 U3
6、建立测试向量文件
6、仿真
Mealy型状态机 设计 方法
Mealy型状态机输出不仅和存
储电路状态有关,还和外部输入信
号有关,即,
外部输出是内部状态和外部输
入的函数。
描述方式,
Si
Data_INi/ZOi
例,
设计一个序列检测器。要求检测器连续收到
串行码 {1101}后,输出检测标志 1,否则输出 0。
状态机设计步骤,
① 分析设计要求,列出全部可能状态;
② 状态编码;
③ 画出状态转换图;
④ 用 ABLE状态机语句描述状态机。
① 分析设计要求,列出全部可能状态,
未收到一个有效位, S0
连续收到一个有效位,S1
连续收到两个有效位,S2
连续收到两个有效位,S3
连续收到两个有效位,S4
② 状态编码,
S0=^B000
S1=^B001
S2=^B010
S3=^B011
S4=^B100
③ 状态转换图,
Si
Data_INi/ZOi 1101
S4
1/1
S0
S1
S2 S3
1/0
1/0
0/0
0/0
1/0
0/0
1/0 0/0
0/0
MODULE MEALY
CP,DATA_IN PIN;
ZO PIN ISTYPE'COM';
Q2..Q0 NODE ISTYPE'REG';
S0=^B000; S1=^B001; S2=^B010;
S3=^B011; S4=^B100;
EQUATIONS
[Q2..Q0].CLK=CP;
STATE_DIAGRAM[Q2..Q0]
STATE S0,IF DATA_IN==1 THEN S1 WITH ZO=0;
ELSE S0 WITH ZO=0;
STATE S1,IF DATA_IN==1 THEN S2 WITH ZO=0;
ELSE S0 WITH ZO=0;
STATE S2,IF DATA_IN==0 THEN S3 WITH ZO=0;
ELSE S2 WITH ZO=0;
STATE S3,IF DATA_IN==1 THEN S4 WITH ZO=1;
ELSE S0 WITH ZO=0;
STATE S4,IF DATA_IN==1 THEN S1 WITH ZO=0;
ELSE S0 WITH ZO=0;
END
MODULE MEALY
CP PIN;
DATA_IN PIN;
ZO PIN ISTYPE'COM';
Q2..Q0 NODE ISTYPE'REG';
TEST_VECTORS([CP,DATA_IN]->ZO)
[.C.,1]->.X.;
[.C.,1]->.X.;
[.C.,0]->.X.;
[.C.,1]->.X.;
[.C.,0]->.X.;
[.C.,1]->.X.;
[.C.,1]->.X.;
[.C.,1]->.X.;
[.C.,0]->.X.;
[.C.,1]->.X.;
[.C.,1]->.X.;
END
MODULE MEALY2
CP,DATA_IN PIN;
ZO PIN ISTYPE'REG';
Q2..Q0 NODE ISTYPE'REG';
S0=^B000; S1=^B001; S2=^B010;
S3=^B011; S4=^B100;
EQUATIONS
[Q2..Q0].CLK=CP; ZO.CLK=CP;
STATE_DIAGRAM[Q2..Q0]
STATE S0,IF DATA_IN==1 THEN S1 WITH ZO:=0;
ELSE S0 WITH ZO:=0;
STATE S1,IF DATA_IN==1 THEN S2 WITH ZO:=0;
ELSE S0 WITH ZO:=0;
STATE S2,IF DATA_IN==0 THEN S3 WITH ZO:=0;
ELSE S2 WITH ZO:=0;
STATE S3,IF DATA_IN==1 THEN S4 WITH ZO:=1;
ELSE S0 WITH ZO:=0;
STATE S4,IF DATA_IN==1 THEN S1 WITH ZO:=0;
ELSE S0 WITH ZO:=0;
END
More型状态机 设计 方法
Mealy型状态机输出仅和存储
电路状态有关,与外部输入无关,
即,
外部输出是内部状态的函数。
描述方式,
Si/ZOi
Data_INi
③ 状态转换图,
1101
S0/0
S1/0
S2/0
S4/1
S3/0
1
1
0
1
0
1
0
1 0
0 Si/ZOi Data_INi
MODULE more
CP,DATA_IN PIN;
ZO PIN ISTYPE'com';
Q2..Q0 NODE ISTYPE'REG';
S0=^B000; S1=^B001; S2=^B010;
S3=^B011; S4=^B100;
EQUATIONS
[Q2..Q0].CLK=CP;
STATE_DIAGRAM[Q2..Q0]
STATE S0,ZO=0;IF DATA_IN==1 THEN S1 ELSE S0;
STATE S1,ZO=0;IF DATA_IN==1 THEN S2 ELSE S0;
STATE S2,ZO=0;IF DATA_IN==0 THEN S3 ELSE S2;
STATE S3,ZO=0;IF DATA_IN==1 THEN S4 ELSE S0;
STATE S4,ZO=1;IF DATA_IN==1 THEN S1 ELSE S0;
END