Professional Documents
Culture Documents
第十章 EDA设计优化
第十章 EDA设计优化
第十章 EDA设计优化
第 10 章
设计优化和设计方
法
KX
康芯科技
10.1 面积优
化
FPGA/CPLD 资源的优化具有实用意义:
( 1 )通过优化,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。
( 3 )为以后的技术升级,留下更多的可编程资源,方便添加产品的功能。
( 4 )对于多数可编程逻辑器件,资源耗用太多会使器件功耗显著上升。
10.1.1 资源共享
KX
康芯科技
10.1.1 资源共享
【例 10-1 】
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
USE ieee.std_logic_arith.all;
ENTITY multmux IS
PORT (A0, A1 , B : IN std_logic_vector(3 downto 0);
sel : IN std_logic;
Result : OUT std_logic_vector(7 downto 0));
END multmux;
ARCHITECTURE rtl OF multmux IS
BEGIN
process(A0,A1,B,sel)
begin
if(sel = '0') then Result <= A0 * B;
else Result <= A1 * B;
end if;
end process;
END rtl;
KX
康芯科技
Sel
A0
B
×
0
乘法器0 Result 图 10-1 先乘后
选择的设计方法
A1 1
RTL 结构
B
× 选择器
乘法器1
Sel
A0 0
A1 1 图 10-2 先选择
Result 后乘设计方法 R
B 选择器 × TL 结构
乘法器
KX
康芯科技
【例 10-2 】
ARCHITECTURE rtl OF muxmult IS
signal temp : std_logic_vector(3 downto 0);
BEGIN
process(A0,A1,B,sel)
begin
if(sel = '0') then temp <= A0;
else temp <= A1;
end if;
result <= temp * B;
end process;
END rtl;
A 0
S R
B
A 1
0 R
选择器
图 10-3 资源 B
1 S
共享反例
选择器 A 0 R
B
1
选择器
KX
康芯科技
【例 10-4 】
LIBRARY ieee;
USE ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
ENTITY mult2 IS
PORT(clk : in std_logic;
ma : In std_logic_vector(11 downto 0);
mc : out std_logic_vector(23 downto 0));
END mult2;
ARCHITECTURE rtl OF mult2 IS
signal ta : std_logic_vector(11 downto 0);
constant tb : std_logic_vector(11 downto 0) := "1001101110
01";
BEGIN
process(clk) begin
if(clk'event and clk = '1') then ta<=ma; mc<=ta * tb;
end if;
end process;
END rtl;
KX
康芯科技
【例 10-5 】
LIBRARY ieee;
USE ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
ENTITY pmultadd IS
PORT(clk : in std_logic;
a0,a1,a2,a3 : in std_logic_vector(7 downto 0);
b0,b1,b2,b3 : in std_logic_vector(7 downto 0);
yout : out std_logic_vector(15 downto 0));
END pmultadd;
ARCHITECTURE p_arch OF pmultadd IS
BEGIN
process(clk) begin
if(clk'event and clk = '1') then
yout <= ((a0*b0)+(a1*b1))+((a2*b2)+(a3*b3));
end if;
end process;
END p_arch;
KX
康芯科技
[7:0] [7:0]
a0[7:0]
[7:0] [7:0]
* [15:0]
b0[7:0]
clk
[15:0]
[7:0] [7:0]
a1[7:0]
* [15:0] [15:0]
[15:0]
[7:0] [7:0]
a2[7:0]
[7:0] [7:0]
* [15:0]
b2[7:0]
[7:0] [7:0]
a3[7:0]
[7:0] [7:0]
* [15:0]
b3[7:0]
【例 10-6 】
LIBRARY ieee;
USE ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
ENTITY smultadd IS
PORT(clk , start : in std_logic;
a0,a1,a2,a3 : In std_logic_vector(7 downto 0);
b0,b1,b2,b3 : In std_logic_vector(7 downto 0);
yout : out std_logic_vector(15 downto 0));
END smultadd;
ARCHITECTURE s_arch OF smultadd IS
signal cnt : std_logic_vector(2 downto 0);
signal tmpa , tmpb : std_logic_vector(7 downto 0);
signal tmp , ytmp : std_logic_vector(15 downto 0);
BEGIN
tmpa <= a0 when cnt = 0 else
a1 when cnt = 1 else
a2 when cnt = 2 else
a3 when cnt = 3 else
a0;
接下页
KX
康芯科技
[7:0]
a0[7:0]
clk
[0]
[2:0]
[1] e
[2]
+ [0:2] [0:2]
0
[2:0] [2:0] [2:0]
[7:0]
d
D[2:0] Q[2:0]
000 e
1 [7:0]
d [7:0] [7:0]
[7:0]
a1[7:0]
start
e * [15:0] [15:0]
a3[7:0] [7:0]
[7:0]
d [7:0]
[15:0]
+ [1:16] [1:16]
D[15:0] Q[15:0] [15:0] [15:0]
D[15:0] Q[15:0] [15:0][15:0]
yout[15:0]
[7:0] R E
a2[7:0] e
[7:0] E
[0] d
[1]
[2]
[7:0]
b0[7:0]
[1] e
[7:0]
[0] d
e
[7:0]
d [7:0]
[7:0]
b1[7:0] e
[7:0] [7:0] [0]
b2[7:0] d
[7:0] [1]
b3[7:0]
e
[7:0]
d
[0]
[1]
图 10-5 串行化结构
KX
康芯科技
10.2 速度优化
10.2.1 流水线设计
10.2.1 流水线设计
图 10-7 使用流水
线
其最高频率为:
11
FFmax FFmax
max FFmax
max11
max22
TT11
KX
康芯科技
图 10-8 流水线工作图示
【例 10-7 】
LIBRARY ieee;
USE ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
ENTITY adder4 IS
PORT(clk : in std_logic;
a0,a1,a2,a3 : in std_logic_vector(7 downto 0);
yout : out std_logic_vector(9 downto 0));
END adder4; 接下页
KX
康芯科技
接上页
10.2.2 寄存器配平
如果其中的两个组合逻辑块的延时差别过大,如 T1 大于 T2 ,于是其总体的
工作频率 Fmax 取决于 T1 ,即最大的延时模块,从而导致设计的整体性能受到限
制。
KX
康芯科技
10.2.2 寄存器配平
10.2.3 关键路径法
KX
康芯科技
10.3.1 全局逻辑综合选项
1. 普通类型( Norma
l)
KX
康芯科技
10.3.1 全局逻辑综合选项
2. 快速类型( Fast )
3. 所见即所得类型( WYSIWY
G)
MAX+plusII中对应于综合类型各设有
MAX+plusII 中对应于综合类型各设有44种器件系列( DeviceFamily
种器件系列(Device Family):
):
(11)
( MAX5000系列。
)MAX5000 系列。
(22)
( MAX3000/MAX7000/MAX9000系列。
)MAX3000/MAX7000/MAX9000 系列。
(33)
( CLASSIC系列。
)CLASSIC 系列。
(44)
( FLEX/ACEX系列。
)FLEX/ACEX 系列。
KX
康芯科技
10.3.2 时间需求选项
寄存器的时序参数
寄存器的时序参数
组合电路的路径延时
组合电路的路径延时
建立时间 Ts
u
输出时间 Tco
时钟最大频率 Fmax
保持时间 Thold
恢复时间 Tov
KX
康芯科技
Tsu Tco
Fmax
图 10-14 部分寄存器时序参
数
Tsu Thold
图 10-15 部分
寄存器参数时
序图
Tco Fmax
KX
康芯科技
图 10-16 时间需求设定
KX
康芯科技
图 10-17 建立保持时间分析器
KX
康芯科技
图 10-20 使用 Clique
KX
康芯科技
Clique 的注意事项:
对速度有更高要求的模块使用打包,那些模块往往处于关
键路径,改善它们的速度会提高系统的整体速度。
Clique 使用于层次化设计中,将大的、慢速的逻辑块分成
小模块,便合理使用 Clique 。
对整个设计应用打包(同一组)等于没有应用,打包是一
种局部的布局规划,适用于设计中的某些模块。
KX
康芯科技
10.3.4 局部逻辑综合选项
图 10-23 使用局部逻辑选项
KX
康芯科技
10.3.4 局部逻辑综合选项
KX
康芯科技
图 10-25 分立逻辑选项
KX
康芯科技
10.3.4 局部逻辑综合选项
图 10-26 清除工程选项设置
KX
康芯科技
图 10-27 是一个简单的设计(图形方式),假如需要
观察节点 1 ( Q 端)的波形。
图 10-28 右键菜单
KX
康芯科技
图 10-29 加入探针后
KX
康芯科技
10.4 其他设置
10.4.1 Slow Slew Rate 设置
10.4 其他设置
10.4.2 EPC 系列配置器件设置与编程
图 10-32 EPC
2 的编程文件
产生设置
KX
康芯科技
图 10-33 E
PC2 下载
10.4 其他设置
10.4.3 编程文件转换
在 MAX+plusII 环境下可产生的编程、配置文件有下列几种:
图 10-36 编程文件转换
KX
康芯科技
10.4 其他设置
10.4.4 MAX+plusII 在 Windows 2000 上的安装设置
具体安装步骤如下:
( 1 )首先安装 MAX+plusII ;
( 2 )选择(“开始”→“设置”→“控制面板”);
( 3 )双击“游戏选项”,然后选择“添加”→“添加其他”→“从磁盘安
装”命令,再单击“浏览”浏览驱动所在目录: MAX+plusII 的安装目录 \drive
rs\win2000 ;
( 4 )选择 win2000.inf ,单击确定;
( 5 )在“数字签名未找到”对话框中,选择是;
( 6 )在“选择一个设备驱动程序”窗口中,选择 Altera ByteBlaster ,并
单击“下一步”;
( 7 )在接下去的“数字签名未找到”对话框中,仍选择“是”;
( 8 )安装完成,依提示,重新启动计算机
KX
康芯科技
实 验
实验 10-1 采用流水线技术设计高速数字相关器
(11)实验目的:设计一个在数字通信系统中常见的数字
( )实验目的:设计一个在数字通信系统中常见的数字
相关器,并利用流水线技术提高其工作速度,对其进行仿真和
相关器,并利用流水线技术提高其工作速度,对其进行仿真和
硬件测试。
硬件测试。
(22)实验原理:数字相关器用于检测等长度的两个数字
( )实验原理:数字相关器用于检测等长度的两个数字
序列间相等的位数,实现序列间的相关运算。
序列间相等的位数,实现序列间的相关运算。
一位相关器即是异或门,异或的结果可以表示两个
一位相关器即是异或门,异或的结果可以表示两个11位数 位数
据的相关程度。异或为
据的相关程度。异或为00表示数据位相同;异或为
表示数据位相同;异或为11表示数据
表示数据
位不同。多位数字相关器可以由多个一位相关器构成,如
位不同。多位数字相关器可以由多个一位相关器构成,如NN位 位
的数字相关器由
的数字相关器由NN个异或门和
个异或门和NN个
个11位相关结果统计电路构成。
位相关结果统计电路构成。
KX
康芯科技
实 验
实验 10-1 采用流水线技术设计高速数字相关器
((33)实验内容
)实验内容11:根据上述原理设计一个并行
:根据上述原理设计一个并行44位数字
位数字
相关器(例 10-10是样例程序)。提示:利用
相关器(例10-10 CASE语句完成
是样例程序)。提示:利用CASE 语句完成
44个
个11位相关结果的统计。
位相关结果的统计。
【例 10-10 】
stemp <= a XOR b;
PROCESS(stemp) BEGIN
CASE stemp IS
WHEN "0000" => c <= "100"; --4
WHEN "0001"|"0010"|"0100"|"1000" => c <= "011"; --3
WHEN "0011"|"0101"|"1001"|"0110"|"1010"|"1100" => c <= "0
10";--2
WHEN "0111"|"1011"|"1101"|"1110" => c <= "001"; --1
WHEN "1111" => c <= "000"; -- 0;
WHEN OTHERS => c <= "000";
END CASE;
END PROCESS;
KX
康芯科技
实
验 实验 10-1 采用流水线技术设计高速数字相关器
(44)实验内容
( )实验内容22:利用实验内容
:利用实验内容11中的 中的44位数字相关器设计并行
位数字相关器设计并行16 16
位数字相关器。使用 MAX+plusII估计最大延时,并计算可能运行频率。
位数字相关器。使用MAX+plusII 估计最大延时,并计算可能运行频率。
(55)实验内容
( )实验内容33:在步骤
:在步骤44的基础上,利用设计完成的
的基础上,利用设计完成的44位数字相关
位数字相关
器设计并行16
器设计并行 16位数字相关器,其结构框图见图
位数字相关器,其结构框图见图10-38 10-38,并利用 MAX+plusII
,并利用MAX+plusII
计算运行速度。
计算运行速度。
a[3..0]
4位相关器
b[3..0] 3
+ 4
a[7..4]
4位相关器 图 10-38
b[7..4] 3
16 位相
a[11..8]
+ 5
c[15..0]
关器结构
4位相关器
b[11..8] 3
a[15..12]
+ 4
4位相关器
b[15..12] 3
KX
康芯科技
实
验
实验 10-1 采用流水线技术设计高速数字相关器
(66)实验内容
( )实验内容44:上面的 16位数字相关器是用
:上面的16 位数字相关器是用33级组合
级组合
逻辑实现的,在实际使用时,对其有高速的要求,试使用流水
逻辑实现的,在实际使用时,对其有高速的要求,试使用流水
线技术改善其运行速度。在输入、输出及每一级组合逻辑的结
线技术改善其运行速度。在输入、输出及每一级组合逻辑的结
果处加入流水线寄存器,提高速度,可参照本章内容进行设计。
果处加入流水线寄存器,提高速度,可参照本章内容进行设计。
(77)实验思考题:考虑采用流水线后的运行速度与时钟
( )实验思考题:考虑采用流水线后的运行速度与时钟clcl
ock的关系,测定输出与输入的总延迟。若输入序列是串行化
ock 的关系,测定输出与输入的总延迟。若输入序列是串行化
的,数字相关器的结构如何设计?如何利用流水线技术提高其
的,数字相关器的结构如何设计?如何利用流水线技术提高其
运行速度?
运行速度?
(88)实验报告:根据以上的实验内容写出实验报告,包括
( )实验报告:根据以上的实验内容写出实验报告,包括
设计原理、程序设计、程序分析、仿真分析、硬件测试和详细
设计原理、程序设计、程序分析、仿真分析、硬件测试和详细
实验过程。
实验过程。
KX
康芯科技
实
验实验 10-2 线性反馈移位寄存器( LFSR )设计
图 10-39 LFSR 举
KX
康芯科技
实
验实验 10-2 线性反馈移位寄存器( LFSR )设计
( 3 )实验内容:依据图 10-39 设计一个 LFSR ,其生成多项式为 X4+
X3+X0 。试在 EPF10K20TC144-4 器件上加以实现,并利用本章中提及的 M
AX+plusII 优化选项,使之达到最高运行速度,并在 EDA 开发系统上,对
其产生的码序列进行观察。
( 4 )实验思考题:另有一种 LFSR 的结构,见图 10-40 ,试分析与图
10-39 中 LFSR 结构的异同点。
实
验
实验 10-2 线性反馈移位寄存器( LFSR )设计