视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
VHDL程序设计教程习题解答
2025-09-25 14:19:05 责编:小OO
文档
VHDL程序设计教程

习题参考解答

第1章思考题解答`    ``````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````

1.什么是VHDL?简述VHDL的发展史。

答: VHDL是美国国防部为电子项目设计承包商提供的,签定合同使用的,电子系统硬件描述语言。1983年成立VHDL语言开发组,1987年推广实施,1993年扩充改版。VHDL是IEEE标准语言,广泛用于数字集成电路逻辑设计。

2.简述VHDL设计实体的结构。

答:实体由实体名、类型表、端口表、实体说明部分和实体语句部分组成。根据IEEE标准,实体组织的一般格式为:

ENTITY  实体名 IS

 [GENERIC(类型表);]     --可选项

 [PORT(端口表);]        --必需项

 实体说明部分;          --可选项

 [BEGIN

  实体语句部分;]

END [ENTITY] [实体名];

3.分别用结构体的3种描述法设计一个4位计数器。

答: 用行为描述方法设计一个4位计数器如下,其它描述方法,读者可自行设计。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

use ieee.std_logic_unsigned.all;

ENTITY countA IS

  PORT (clk,clr,en:IN STD_LOGIC;

        Qa,qb,qc,qd:OUT STD_LOGIC);

END countA;

ARCHITECTURE example OF countA IS

SIGNAL count_4:STD_LOGIC_vector (3 DOWNTO 0);

BEGIN

Qa <= count_4(0);

Qb <= count_4(1);

Qc <= count_4(2);

Qd <= count_4(3);

PROCESS (clk,clr)

  BEGIN

    IF (clr = '1' ) THEN

Count_4 <= "0000";

    ELSIF (clk'EVENT AND clk = '1' ) THEN

    IF (en = '1' ) THEN

      IF (count_4 = "1111") THEN

count_4 <= "0000";

      ELSE

count_4 <= count_4+ '1';

      END IF;

     END IF;

    END IF;

  END PROCESS;

END example;

第2章 思考题解答

1.什么叫对象?对象有哪几个类型?

答:在VHDL语言中,凡是可以赋于一个值的客体叫对象(object)。VHDL对象包含有专门数据类型,主要有4个基本类型:常量(CONSTANT)、信号(SIGNAL)、变量(VARIABLE)和文件(FILES)。

2.VHDL语言定义的标准类型有哪些?

答 VHDL语言标准所定义的标准数据类型

(1) 整数类型(INTEGER TYPE)

(2) 实数类型或浮点类型(REAL TYPE & FLOATING TYPE)

(3) 位类型(BIT TYPE)

(4) 位矢量类型(BIT_VECTOR TYPE)

(5) 布尔类型(BOOLEAN TYPE)

(6) 字符类型(CHARACTER TYPE)

(7) 时间类型或物理类型(TIME TYPE & PHYSICAL TYPE)

(8) 错误类型(NOTE,WARNIING,ERROR,FAILURE TYPE)

(9) 自然数、整数类型(NATURAL TYPE)

(10) 字符串类型(TRING TYPE)

3.简述VHDL语言操作符的优先级。

答: 在表2.1中,取反和取绝对值优先级较高,与、或逻辑运算的优先级低于算术运算的优先级。

4.哪3种方法可用来进行类型转换?

答:进行不同类型的数据变换,有3种方法:类型标记法、函数转换法和常数转换法。

第3章思考题解答

1.什么叫进程?简述进程的工作方式。

答:进程(process)是由外部信号触发执行的一段程序。进程语句是并行处理语句,即各个进程是同时处理的,在结构体中多个Process语句是同时并发运行的。在进程内部是顺序执行的。Process语句在VHDL程序中,是描述硬件并行工作行为的最常用、最基本的语句。

进程Process语句中一般带有几个信号量例表,称为该进程的敏感量表。这些信号无论哪一个发生变化都将启动Process进程。一旦启动,进程Process中的程序将从上到下顺序执行一遍,由新变化的量引导进程产生变化结果输出。当进程的最后一个语句执行完成后,就返回到进程开始处,等待敏感量的新变化,引发进程的再一次执行。周而复始,循环往复,以至无穷。这就是进程的执行过程。

2.什么叫模块?区分模块与进程。

答:模块(Block)语句是结构体中积木化设计语言,适用于复杂项目设计。

Block块是一个的子结构,可以包含PORT语句、GENERIC语句,允许设计者通过这两个语句将Block块内的信号变化传递给Block块的外部信号。同样,也可以将Block块的外部信号变化传递给Block块的内部信号。

对VHDL语言中的Block模块进行仿真时,Block模块中所描述的各个语句是可以并发执行的,和模块中的语句书写顺序无关。进程语句是一段程序,这段程序是顺序执行的。

3.用结构描述法和GENERATE语句设计一个8位移位寄存器。

答:

LIBRARY  IEEE;

USE  IEEE.STD_LOGIC_11.ALL;

ENTITY  shift_register  IS

PORT(a,clk: IN   STD_LOGIC;

         b: OUT  STD_LOGIC);

END  ENTITY  shift_regester; 

ARCHITECTURE eight_BIT_shift_register OF shift_register  IS

COMPONENT  dff                      -- dff元件调用 

PORT(a,Clk: IN STD_LOGIC;

         b: OUT  STD_LOGIC);

 END  COMPONENT;

       SIGNAL  X:  STD_LOGIC_VECTOR(0 TO 4);

BEGIN

X(0) <= a;

  dff1:dff  PORT MAP (X(0),clk,Z(1));

  dff2:dff  PORT MAP (X(1),clk,Z(2));

dff3:dff  PORT MAP (X(2),clk,Z(3));

  dff4:dff  PORT MAP (X(3),CLK,Z(4));

dff5:dff  PORT MAP (X(4),CLK,Z(5));

dff6:dff  PORT MAP (X(5),CLK,Z(6));

dff7:dff  PORT MAP (X(6),CLK,Z(7));

dff4:dff  PORT MAP (X(7),CLK,Z(8));

B<=X(8);

END ARCHITECTURE  eight_bit_shift_register;

4.设计一个3-8优先级编码器。

答:参考书中第5章编码器设计。

5.设计一个4-16译码器。

答:参考书中第5章译码器设计。

第4章思考题解答

1.配置语句的书写格式是怎样的?

答:配置语句的书写形式为:

CONFIGURAT10N  配置名 OF 实体名 IS

FOR 选配构造体名

END FOR; 

END 配置名;

2.配置说明中的映射有哪两种方法?

答:位置关联法和名称关联法。

3.在配置语句中用GENERIC 指定参数,设计一个译码器。

答:LIBRARY IEEE;

USE IEEE.std_logic_11.ALL;

ENTITY decode IS

  PORT(a,b,en : IN std_logic;

       Q0,q1,q2,q3: OUT std_logic);

END decode;

ARCHITECTURE structural OF decode IS

  COMPONENT inv

    PORT(a : IN std_logic;

          b : OUT std_logic);

  END COMPONENT;

  COMPONENT and3

    PORT(a1,a2,a3 : IN std_logic;

         O1: OUT std_logic);

  END COMPONENT;

  SIGNAL nota,notb : std_logic;

BEGIN

  I1 : inv

    PORT MAP(a,nota);

  I2 : inv

        PORT MAP(b,notb);

      AN1 : and3

        PORT MAP(nota,en,notb,q0);

      AN2 : and3

    PORT MAP(a,en,notb,q1);

      AN3 : and3

        PORT MAP(nota,en,b,q2);

      AN4 : and3

        PORT MAP(a,en,b,q3);

END structural;

-------------------------------------------

CONFIGURATION decode_gen1_con OF decode IS

  FOR structural

    FOR I1 : inv USE ENTITY WORK.inv(inv_gen1)

GENERIC MAP(int_rise => 1.2 ns,

Int_fall => 1.7 ns,

Ext_rise => 2.6 ns,

Ext_fall => 2.5 ns);

    END FOR;

    FOR I2 : inv USE ENTITY WORK.inv(inv_gen1)

GENERIC MAP(int_rise => 1.3 ns,

Int_fall => 1.4 ns,

Ext_rise => 2.8 ns,

Ext_fall => 2.9 ns);

    END FOR;

    FOR AN1 : and3 USE ENTITY WORK.and3(and3_gen1)

GENERIC MAP(int_rise => 2.2 ns,

Int_fall => 2.7 ns,

Ext_rise => 3.6 ns,

Ext_fall => 3.5 ns);

    END FOR;

    FOR AN2 : and3 USE ENTITY WORK.and3(and3_gen1)

GENERIC MAP(int_rise => 2.2 ns,

Int_fall => 2.7 ns,

Ext_rise => 3.1 ns,

Ext_fall => 3.2 ns);

    END FOR;

    FOR AN3 : and3 USE ENTITY WORK.and3(and3_gen1)

GENERIC MAP(int_rise => 2.2 ns,

Int_fall => 2.7 ns,

Ext_rise => 3.3 ns,

Ext_fall => 3.4 ns);

    END FOR;

    FOR AN4 : and3 USE ENTITY WORK.and3(and3_gen1)

GENERIC MAP(int_rise => 2.2 ns,

Int_fall => 2.7 ns,

Ext_rise => 3.0 ns,

Ext_fall => 3.1 ns);

    END FOR;

  END FOR;

END decode_gen1_con;

4.计一个加法器,元件例化后放入库中备用。

答:半加器及全加器VHDL程序设计(1)。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

ENTITY full_adder IS

  PORT (a,b,cin:IN STD_LOGIC;

         Sum,co:OUT STD_LOGIC);

END full_adder;

ARCHITECTURE full1 OF full_adder IS

COMPONENT half_adder

  PORT (a,b:IN STD_LOGIC;

        S,co:OUT STD_LOGIC);

END COMPONENT;

SIGNAL u0_co,u0_s,u1_co:STD_LOGIC;

BEGIN

  U0:half_adder PORT MAP (a,b,u0_s,u0_co); 

  U1:half_adder PORT MAP (u0_s,cin,sum,u1_co);

Co <= u0_co OR u1_co;

END full1;

半加器及全加器VHDL程序设计(2)。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

ENTITY half_adder IS

  PORT (a,b:IN STD_LOGIC;

        S,co:OUT STD_LOGIC);

END half_adder;

ARCHITECTURE half1 OF half_adder IS

SIGNAL c,d:STD_LOGIC;

BEGIN

C <= a OR b;

D <= a NAND b;

Co <= NOT d;

S <= c AND d;

END half1;

5.简述层次化设计的过程。

答:层次化设计是指对于一个大型设计任务,将目标层层分解,在各个层次上分别设计的方法。有些设计,在一些模块的基础上,通过搭建积木的方法进行设计。有人称,在整个设计任务上进行行为描述的设计方法,称为高层次设计,而从事某一模块、某一元件行为设计称为底层设计方法。

6.什么是库,程序包,子程序,过程调用,函数调用?

答:库(libraries)和程序包(package)用来描述和保存元件、类型说明、函数、模块等,以便在其他设计中可随时引用它们。

库(libraries)是用来存储和放置可编译的设计单元的地方,通过其目录可查询、调用。设计库中的设计单元(实体说明、结构体、配置说明、程序包说明和程序包体)可以用作其他VHDL描述的资源。

函数和过程统称为子程序。

子程序由过程和函数组成。在子程序调用过程中,过程能返回多个变量,函数能返回一个变量。若子程序调用是一个过程,就称为过程调用;若子程序调用是一个函数,则称为函数调用。过程调用和函数调用都是子程序调用。

函数的参数都是输入参数。

过程的参数有输入、输出和双向参数。

函数有顺序函数、并行函数。

过程有顺序过程、并行过程。

7. 编写一个OR函数,重载它,对不同的数据类型进行OR运算。

答: 参考例4-24 读者自行编写。

第5章思考题解答

1.CLK信号怎样用VHDL语言描述?

答:时钟信号的上升沿的描述:

if  clk‘event and clk = ‘1’ then …;

时钟信号的下降沿的描述:  

if clk ‘event and clk = ‘1’ then …;

2.异步复位怎样用VHDL语言描述?

答:当复位信号低电平有效时,VHDL的描述为:

if reset = ‘0’ then …;

当复位信号高电平有效时, VHDL的描述为:

if reset =‘1’ then …;

3.设计一个8位循环移位寄存器。

答: 8位循环计寄存器的VHDL参考程序设计如下:

 LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

ENTITY circleshift8 IS

  PORT (seldata:in std_logic_vector(2 downto 0);

          clr,clk: IN STD_LOGIC; 

            sel: OUT STD_LOGIC_vector(7 downto 0));

END circleshift8;

ARCHITECTURE sample OF circleshift8 IS

begin

process(clk,clr)

            Begin

         if (clr='1')then sel<="00000000";                

           elsif clk'event and clk='1' then

          case seldata is

         when "001"=>     sel<="00000001";                

         when "010"=>     sel<="00000010";                

         when "011"=>     sel<="00000100";                

         when "100"=>     sel<="00001000";                

         when "101"=>     sel<="00010000";                

         when "110"=>     sel<="00100000";                

         when "111"=>     sel<="01000000";                

         when others => sel<="00000000";

        end case;                

        end if;

      end process;

end sample;

4. 设计一个六十进制计数器。

答: 60进制计数器的VHDL参考程序设计如下:

Library  ieee;

use ieee.std_logic_11.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

--*******************************************************

     Entity counter60 is

     port(

           cp:in std_logic;

          bin:out std_logic_vector(6 downto 0);

            s:in std_logic;

          clr:in std_logic;

           ec:in std_logic;

         cy60:out std_logic

          );     

End counter60;

--*******************************************************

Architecture b of counter60 is

  signal q:std_logic_vector(6 downto 0);

  signal rst,dly:std_logic;

begin

    process(rst,cp)

    begin

if rst='1' then q<="0000000"; -- cy(60)<='0';

elsif cp'event and cp='1' then dly<=q(5);

        if ec='1'then

if q=59 then q<="0000000";

        else

q<=q+1;

          end if;

               else 

              q<=q;

             end if;

        end if;               

    end process;

cy60<= not q(5) and dly;

rst<= clr;

bin<=q when s='1' else

         "1111111";

End b;

5. 设计一个八位编码器。

答: 八位编码器的VHDL参考程序设计如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

ENTITY priotyencoder IS

  PORT (d : IN Std_Logic_Vector (7 Downto 0);

        E1: IN Std_Logic;

        GS,E0: OUT BIT STD_LOGIC;

        Q : OUT Std_Logic_Vector(2 Downto 0);

END priotyencoder;

ARCHITECTURE encoder OF prioty encoder IS

BEGIN

  P1: PROCESS ( d )

BEGIN

       IF ( d(0) = 0 AND E1 = 0 ) THEN

Y <= 111;

GS <= 0;

E0 <= 1;

       ELSIF (d(1) = 0 AND E1 = 0 ) THEN

Q <= 110;

GS <= 0;

E0 <= 1;

     ELSIF (d(2) = 0 AND E1 = 0 ) THEN

Q <= 101;

GS <= 0;

E0 <= 1;

     ELSIF (d(3) = 0 AND E1= 0 ) THEN

Q <= 100;

GS <= 0;

E0 <= 1;

     ELSIF (d(4) = 0 AND E1= 0 ) THEN

Q <= 011;

GS <= 0;

E0 <= 1;

     ELSIF (d(5) = 0 AND E1= 0 ) THEN

Q <= 010;

GS <= 0;

E0 <= 1;

     ELSIF (d(6) = 0 AND E1 = 0 ) THEN

Q <= 001;

GS<= 0;

E0<= 1;

     ELSIF (d(7) = 0 AND E1 = 0 ) THEN

Q <= 000;

GS <= 0 ;

E0 <= 1;

     ELSIF (E1 = 1 ) THEN

Q <= 111;

GS <= 1;

E0 <= 1;

     ELSIF (d = 1111 1111 AND E1 = 0 ) THEN

Q <= 111;

GS <= 1;

E0 <= 0;

     END IF;   

    END PROCESS P1;

   END encoder;

6. 设计一个三八译码器。

    答: 三八译码器的VHDL参考程序设计如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

ENTITY decoder3_8 IS

  PORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC;

            Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END decoder3_8;

ARCHITECTURE rtl OF decoder3_8 IS

SIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0);

BEGIN

Indata <= c & b & a;

  PROCESS (indata,g1,g2a,g2b)

BEGIN

IF (g1 = 1 AND g2a = 0 AND g2b = 0 ) THEN

           CASE indata IS

WHEN 000 => y <= 11111110 ;

WHEN 001 => y <= 11111101 ;

WHEN 010 => y <= 11111011 ;

WHEN 011 => y <= 11110111 ;

WHEN 100 => y <= 11101111 ;

WHEN 101 => y <= 11011111 ; 

WHEN 110 => y <= 10111111 ; 

WHEN 111 => y <= 01111111 ;

WHEN OTHERS=> y <= XXXXXXXX ;

               END CASE;

            ELSE

Y <= 11111111 ;

            END IF;

         END PROCESS;

END rtl;

7. 设计一个N位通用加法器。

答: 设N=8位时,通用加法器的VHDL参考程序设计如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

ENTITY B8_adder IS

  PORT (a,b,cin:IN STD_LOGIC_VECTOR(7 DOWNTO 0);

          Sum,co:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));

END B8_adder;

ARCHITECTURE STRUCTURE OF B8_adder IS

COMPONENT full_adder

  PORT (a,b,cin:IN STD_LOGIC;

          Sum,co:OUT STD_LOGIC);

          END COMPONENT;

BEGIN

 ga: for i in 0 to 7 generate

  adder: full_adder PORT MAP (a(i),b(i),cin(i),Sum(i),co(i));

  end generate;

END STRUCTURE;

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

ENTITY full_adder IS

  PORT (a,b,cin:IN STD_LOGIC;

          Sum,co:OUT STD_LOGIC);

END full_adder;

ARCHITECTURE full1 OF full_adder IS

COMPONENT half_adder

  PORT (a,b:IN STD_LOGIC;

          S,co:OUT STD_LOGIC);

          END COMPONENT;

SIGNAL u0_co,u0_s,u1_co:STD_LOGIC;

BEGIN

  U0:half_adder PORT MAP (a,b,u0_s,u0_co);

  U1:half_adder PORT MAP (u0_s,cin,sum,u1_co);

Co <= u0_co OR u1_co;

  END full1;

LIBRARY IEEE;

USE IEEE.STD_LOGIC_11.ALL;

ENTITY half_adder IS

  PORT (a,b:IN STD_LOGIC;

        S,co:OUT STD_LOGIC);

END half_adder;

ARCHITECTURE half1 OF half_adder IS

SIGNAL c,d:STD_LOGIC;

BEGIN

C <= a OR b;

D <= a NAND b;

Co <= NOT d;

S <= c AND d;

END half1;

8.为什么要层次化设计?

答: 原因有二。第一,对于一个大型设计项目,层次分解后,由不同设计人员分别进行设计,可以大大提高设计效率。第二 层次分解后,各个层次由不同的设计模块构成,可以分别测试,验证。大大降低了项目的风险和难度。

9.Moore型状态机和Mealy型状态机有什么相同和不同?

答: Moore型状态机的输出信号仅与现态相关,Moore 型状态机输出是现态的函数,Mealy型状态机输出是现态和输入的函数。

10.一位有效状态机有什么优点?

答:一位有效编码,比顺序编码方式占用资源多,在目标器件具有较多寄存器资源,并且寄存器之间组合逻辑较少时,一位有效编码是一个比较合适的方法。

11.设计一个3位8状态机。

答: 

library ieee;

use ieee.std_logic_11.all;

entity memory_controller is

 port ( reset, read_write, ready, burst, clk  : in std_logic;

      bus_id    : in std_logic_vector(7 downto 0);

      oe,we    : out std_logic;

      addr      : out std_logic_vector(1 downto 0));

end memory_controller;

architecture state_machine of memory_controller is

  type StateType is (idle, decision, read1, read2, read3, read4, write);

  signal present_state,next_state : StateType;

begin

state_comb:process(reset, bus_id, present_state, burst, read_write, ready)

begin

  if (reset = '1') then                    --复位处理

oe <='-'; addr <='—';

next_state <=idle;                   --信号代入

  else

    case present_state is

      when idle => oe <='0'; we <='0'; addr <="00";

        if (bus_id) = "11110011") then

next_state <= decision;

        else

next_state <= idle;

        end if;

      when decision=> oe <='0'; we <='0'; addr <="00";

        if (read_write) = '0') then

next_state <= read1;

        else           — read_write='0'

next_state <= write;

        end if;

      when read1 => oe <='1'; we <='0'; addr <="00";

        if (ready = '0') then

next_state <= read1;

        elsif (burst ='0') then

next_state <= idle;

        else

next_state <= read2;

        end if;

      when read2 => oe <='1'; we <='0'; addr <="01";

        if (ready = '1') then

next_state <= read3;

        else

next_state <= read2;

        end if;

      when read3 => oe <='1'; we <='0'; addr <="10";

        if (ready = '1') then

next_state <= read4;

        else

next_state <= read3;

        end if;

      when read4 => oe <='1'; we <='0'; addr <="11";

        if (ready = '1') then

next_state <= idle;

        else

next_state <= read4;

end if;

      when write => oe <='0'; we <='1'; addr <="00";

        if (ready = '1') then

next_state <= idle;

        else

next_state <= write;

        end if;

         end case;

      end if;

    end process state_comb;

state_clocked:process(clk)

begin

  if rising_edge(clk'EVENT AND clk='1') then

present_state <= next_state;

  end if;

end process state_clocked;

end state_machine;

12.设计一个PCI BUS VGA图像接口芯片,画出层次分解图,由几个人分别编程,再组合通调,写出一个团体协作的案例,总结成功失败的经验。

答:  1.  首先熟悉PCI总线规范。

2.其次熟悉VGA图象处理器件工作原理。

3.分解设计任务。

4.分别由不同的设计小组编写VHDL程序

5.分别编译、调试,仿真、验证通过。

6.项目合成,整体通调,仿真验证。

7.设计实验原理电路,设计实验电路板。

8.编程、配置FPGA器件,进行性能测试。

9.进行ASIC版图设计,进行MPW流片。

10.编写产品使用手册,提供用户详尽技术参数。

第7章思考题解答

1.VHDL程序到集成电路版图需要那些过程?

答:需要逻辑综合,功能仿真,形式验证或FPGA功能验证,时序仿真,到版图设计。

2.怎样在实验室实现集成电路设计?

答:用VHDL语言进行行为设计,用EDA工具作为设计环境,用FPGA器件作为设计实现载体,就可以在实验室进行集成电路的设计和实现。

3.什么是MPW多项目晶圆服务?

答:多项目晶圆(Multi-Profect Wafer,简称MPW)就是将多种具有相同工艺的集成电路设计项目放在同一圆片上流片,流片后,每个设计项目可以得到数十片芯片样品,这一数量对于设计开发阶段的实验、测试已经足够。而实验费用就由所有参加MPW的项目按照芯片面积分摊,极大地降低了实验成本,降低了中小集成电路设计企业在起步时的门槛。

4.设计一个8位CPU版图,参加MPW流片,并测试设计结果。

答:参考实验讲义,研究实验8的内容并付诸实践。下载本文

显示全文
专题