当前位置:文档之家› 数字集成电路设计流程介绍

数字集成电路设计流程介绍

2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程1)数字集成电路设计流程介绍唐长文2002年7月8日2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程2)内容一、设计流程介绍1、流程图及设计步骤2、EDA软件二、硬件描述语言简介1、传统自下向上的设计方法2、基于硬件描述语言的自顶向下的设计方法3、硬件描述语言--VHDL介绍4、VHDL语言设计实例三、数字系统的结构设计-行为级或RTL级设计1、系统规范2、系统框架3、系统源代码设计4、系统行为级仿真四、数字系统的电路设计--门级电路设计1、FPGA逻辑综合2、ASIC逻辑综合3、综合后仿真五、数字系统的版图设计1、FPGA器件实现2、基于标准单元ASIC版图的自动化生成3、版图后仿真六、版图验证和管子级仿真1、DRC&LVS2、Star_sim管子级仿真一、设计流程介绍C语言仿真Matlab仿真COSSAP仿真2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程4)数字集成电路设计主要分为四大步:1、行为级、RTL 级源代码设计2、电路设计-门级电路设计(1)FPGA 逻辑综合(2)ASIC 逻辑综合3、版图设计(1)FPGA 版图布局布线设计(器件实现)(2)ASIC 版图布局布线设计(基于标准单元库)4、版图验证(DRC&LVS)•设计的步骤2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程5)•EDA 软件(1)FPGA 设计需要的软件源代码设计和仿真9Active-HDLFPGA 逻辑综合9Synopsys FPGA Express 、Synplicity Synplify 、Examplar LeonardoSpectrum 、XST(Xilinx Synthesis Tech)FPGA 器件实现9Xilinx Foundation ISE 、Altera MaxplusII2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程6)(2)ASIC 设计需要的软件源代码设计和仿真9Active-HDLASIC 逻辑综合9Synopsys Design Compiler 、Cadence Ambit ASIC 版图布局布线9Cadence Silicon Ensemble 5.22002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程7)二、硬件描述语言介绍1、传统的自顶向下设计方法:自下至上的硬件设计方法的主要步骤是:•详细编制技术规格书,并画出相同控制流图;•功能细化,划分功能模块,并画出相同的功能框图;•功能模块的细化和电路设计;•功能模块的拼接,系统调试。

为了进一步说明传统的自下至上的设计方法,下面以一个六进制计数器的设计来作一说明:第一步,要设计六进制计数首先要选择逻辑单元块和器件。

第二步,电路设计。

第三步,由中规模的分立器件拼接出图2的电路图,然后进行调试及测试,一直到达到设计的要求。

2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程8)电路设计表1、触发器状态变化表Q2Q1Q0前一状态当前状态前一状态当前状态前一状态当前状态100000120001113011111411111051110006100图2、六进制计数器电路图图1、六进制计数器状态转移图2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程9)缺点1、系统设计时存在的问题只有在后期才能较容易发现;2、对系统设计人员有较高的要求;3、设计周期长;4、设计的主体是电原理图,不便于管理。

2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程10)2、基于硬件描述语言的自顶向下的设计方法•所谓硬件描述语言,就是可以描述硬件电路的功能,信号连接关系及时序关系的语言。

它能比电原理图更有效地表示硬件电路的特性。

利用硬件描述语言来表示逻辑器件及系统硬件的功能和行为,是基于硬件描述语言的自顶向下的设计方法的一个重要特征。

•所谓自顶向下的设计方法,就是从系统总体要求出发,自上至下地逐步将设计内容细化,最后完成系统硬件的整体设计。

•在基于硬件描述语言的自顶向下的逻辑设计方法中,设计者自上至下分成3个层次对系统硬件进行设计:行为级描述,寄存器级描述,工艺库级逻辑综合。

2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程11)第一层,行为级描述。

•所谓行为级描述,实质上就是对整个系统的数学模型的描述。

一般来说,对系统进行行为级描述的目的是试图在系统设计的初期,通过对系统行为描述的仿真来发现设计中存在的问题。

并不真正考虑其实际的操作和算法的实现。

考虑更多的是系统的结构及其工作过程是否能达到系统设计规范的要求。

下面还以六进制计数数器为例,说明一下如何用VHDL语言,以行为方式来描述它的工作特性。

2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程12)library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;entity COUNTER isport(rs : in STD_LOGIC;clk : in STD_LOGIC;count_out: out STD_LOGIC_VECTOR(2 downto 0));end;architecture behav of COUNTER issignal count : STD_LOGIC_VECTOR(2 downto 0);beginprocess(reset, clk)beginif (rs = '1') then --asynchronous resetcount <= (others =>'0');elsif (clk'event and clk = '1') thenif (count<="101" ) thencount <= (others =>'0');elsecount <= count + 1;end if;end if;end process;count_out <= count;end behav;第二层,寄存器级描述。

2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程14)LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY counter ISPORT(clk : IN STD_LOGIC;rs : IN STD_LOGIC;count_out : OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END counter;ARCHITECTURE RTL OF counter ISSIGNAL next_count: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINcount_proc:PROCESS(rs,clk)BEGINIF rs='0' THENnext_count <= "000";ELSIF(clk'EVENT AND clk='1') THENCASE next_count ISWHEN "000" => next_count <="001";WHEN "001" => next_count <="011";WHEN "011" => next_count <="111";WHEN "111" => next_count <="110";WHEN "110" => next_count <="100";WHEN "100" => next_count <="000";WHEN OTHERS => next_count <="XXX";END CASE;END IF;count_out<=next_count;END PROCESS;END RTL;2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程15)第三层,工艺库级逻辑综合。

•逻辑综合是利用逻辑综合工具,例如FPGA Express(针对FPGA设计),Design Compiler(针对ASIC设计),将行为级或者寄存器级描述转换成门级网络表。

•逻辑综合生成门级网表,可以有两种硬件实现选择。

第一种是由自动布局布线工具,如Silicon Enemble, 生成ASIC版图。

第二种是将网表转换成FPGA(现场可编程门阵列)映射文件,由FPGA硬件实现。

2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程16)library IEEE;use IEEE.std_logic_1164.all;library IEEE,LIB_MTC45000; --Specific ASIC Libraryuse LIB_MTC45000.MTC45000_VCOMPONENTS.all;entity counter isport( clk, rs : in std_logic; count_out : out std_logic_vector (2 downto 0));end counter;architecture SYN_behav of counter iscomponent AO6Nport( A, B, C : in std_logic; Z : out std_logic);end component;component AO7Aport( A, B, C : in std_logic; Z : out std_logic);end component;component AO7port( A, B, C : in std_logic; Z : out std_logic);end component;component IVport( A : in std_logic; Z : out std_logic);end component;component FD2Qport( CD, CP, D : in std_logic; Q : out std_logic);end component;signal count_out_1_port, next_count23_1_port, count_out_2_port,next_count23_2_port, next_count23_0_port, count_out_0_port, n52 :std_logic;2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程17)begincount_out <= ( count_out_2_port, count_out_1_port, count_out_0_port );U23 : AO6N port map( A => count_out_2_port, B => count_out_0_port, C =>count_out_1_port, Z => next_count23_2_port);U24 : AO7A port map( A => count_out_1_port, B => count_out_2_port, C => n52,Z => next_count23_1_port);U25 : AO7 port map( A => count_out_1_port, B => n52, C => count_out_2_port,Z => next_count23_0_port);U26 : IV port map( A => count_out_0_port, Z => n52);next_count_reg_2_label : FD2Q port map( CD => rs, CP => clk, D =>next_count23_2_port, Q => count_out_2_port);next_count_reg_1_label : FD2Q port map( CD => rs, CP => clk, D =>next_count23_1_port, Q => count_out_1_port);next_count_reg_0_label : FD2Q port map( CD => rs, CP => clk, D =>next_count23_0_port, Q => count_out_0_port);end SYN_behav;2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程18)2002年版权,复旦大学专用集成电路与系统国家重点实验室(设计流程19)基于硬件描述语言的自顶向下设计方法的优点•基于硬件描述语言的自顶向下的硬件设计方法比传统设计方法具有更灵活、效率更高、硬件描述能力更强、设计与工艺无关等诸多特点。

相关主题