第八章编合$ lathe) ●综合:将较高层次的抽象描述转换到较低级别抽象描述的一种方法,即将设计 的VHDL描述转化为底居电路表示。 步骤:分析VHDL程序、检测语法错误→将设计描述转化为数据结构 将设计行为描述转化为寄存器传输级(RTL描述 81综合概述 工艺库 RTL描述 综合器 门级网表 属性 约束条件 综合过程示意图 RTL: register transmission level寄存器传输级 811RTL级描述 是以规定设计中采用各种寄存器形式为主要特征,然后在寄存器之间插入一些 必要的组合逻辑电路
第八章 综合(Synthesis) ⚫综合:将较高层次的抽象描述转换到较低级别抽象描述的一种方法,即将设计 的VHDL描述转化为底层电路表示。 8.1 综合概述 步骤:分析VHDL程序、检测语法错误→ 将设计描述转化为数据结构 → 将设计行为描述转化为寄存器传输级(RTL)描述 工艺库 RTL描述 属性 约束条件 综合器 门级网表 综合过程示意图 RTL:register transmission level 寄存器传输级 8.1.1 RTL级描述 是以规定设计中采用各种寄存器形式为主要特征,然后在寄存器之间插入一些 必要的组合逻辑电路
寄存器 寄存器 输入 输出 组合逻辑电路 CLK CLK 时钟 RTL级描述的基本逻辑图 例:用元件例化语句表示R工级描述(数据延时电路) dff dff2 Q CLK CLK OB OB clk 多路选择器 数据延时电路的逻辑电路图
寄存器 寄存器 CLK CLK 组合逻辑电路 输入 输出 时钟 RTL级描述的基本逻辑图 例:用元件例化语句表示RTL级描述(数据延时电路) 多路选择器 dff1 dff2 D Q D Q QB QB CLK CLK clk din enable dout 数据延时电路的逻辑电路图
library ieee; use ieee std_logic_1164. all entity data delay is port(dinin std logic, clk:in std _ logic; enable in std _ logic; dout: out std logic) end data delay architecture one of data_delay is component dff port(d: in std_logic; clk: in std_logic; g: out std_logic); end component; signal g-_tmpl, g-_tmp2: std logic; begin dff1: dff port map(din,clk, g-_tmp1); dff2: dff port map(a_tmpl, clk, _tmp2); dout<=q_tmp1 when enable else 4-tmp2 end one
library ieee; use ieee.std_logic_1164.all; entity data_delay is port(din:in std_logic; clk:in std_logic; enable:in std_logic; dout:out std_logic); end data_delay; architecture one of data_delay is component dff port(d: in std_logic; clk: in std_logic; q: out std_logic); end component; signal q_tmp1, q_tmp2: std_logic; begin dff1: dff port map(din,clk, q_tmp1); dff2: dff port map(q_tmp1, clk, q_tmp2); dout<=q_tmp1 when enable=‘1’ else q_tmp2; end one;
采用寄存器的推论方式表示RT级描述 library ieee; use ieee std _ logic_1164.all entity data_delay port(din in std logic; elkin std_logic; enable: in std _ logic; dout: out std_logic); end data delay architecture one of datadelay is signalql, q 2: std_logic, begin reg -p process egin waituntil clk’ event and clk=‘1 q1<=din; q2<=q1; end process reg-p; dout<=q1 when enable=1 else g2; end one
采用寄存器的推论方式表示RTL级描述 library ieee; use ieee.std_logic_1164.all; entity data_delay is port(din:in std_logic; clk:in std_logic; enable:in std_logic; dout:out std_logic); end data_delay; architecture one of data_delay is signal q1, q2: std_logic; begin reg_p:process begin wait until clk’event and clk=‘1’; q1<=din; q2<=q1; end process reg_p; dout<=q1 when enable=‘1’ else q2; end one;
Sinulation Taveforas Simulation mode: Functional R Master Time Bar 199 4 Pointer 10174ns nterval 8184n Start End A Nane Value at p ps 20.0 ns 40.0 ns 60. ns 80. 9 ns 100.0 ns 120.0 ns 140.0 ns 160.0 ns 180.0 ns 200.0 ns 220.o ns 240.0 ns 260.0 →4 94