EDA技术与应用

  • 格式:doc
  • 大小:216.94 KB
  • 文档页数:16

南华大学实验报告(2010年到2011学年第一学期)课程名称:EDA技术与应用班级:本08计算1班学号: 20084440120姓名: XXX教师: XXX2010年上学期实验一 双二选一多路选择器的设计一、实验目的1)学习ispEXPERT/MAX+plusII /foudation Series 软件的基本使用方法。

2)学习GW48-CK EDA 实验开发系统的基本使用方法。

3)了解VHD 程序的基本结构二、实验内容设计一个双二选一多路选择器MUXK,对于其中MUX21A,当s 等0时,选a ,当s 等1是选b ,试用在一个结构体中,用两个进程来表达此电路,每个进程中用一个CASE 语句来表达一个二选一选择器MUX21A 。

三、实验设计1)系统的原理图tmp2.VHDL 源程序MUXK U1U2 MUX21A a b ys a1a2 a3s0s3MUX21Aa b ysoutylibrary ieee;use ieee.std_logic_1164.all;entity muxk isport (a1,a2,a3 : in std_logic;s0,s1:in std_logic;outy :out std_logic);end entity muxk;architecture art of muxk issignal tmp: std_logic;signal c1,b3,s3,y3,c2,b4,s4,y4 : std_logic; beginprocess (a2,a3,s0) isbeginc1<=a2;b3<=a3;s3<=s0;case s3 iswhen '0'=>y3<=c1;when '1'=>y3<=b3;when others=>null;end case;tmp<=y3;end process;process(a1,s1)isbeginc2<=a1;b4<=tmp;s4<=s1;case s4 iswhen '0'=>y4<=c2;when '1'=>y4<=b4;when others=>null;end case;outy<=y4;end process;end architecture art;四、实验结果及总结1)系统仿真情况。

2)实验过程中出现的问题及解决方法在编译时,由于语法方面掌握不足,些CASE语句是没加when others=>null这条语句出现编译错误。

而且把信号量申明在process进程中,出现好多错误,最后经查看语法知识,改正后,编译才正确。

实验二:8位加法器的设计1. 实验目的1) 学习ispEXPERT/MAX+plusII /foudation Series 软件的基本使用方法。

2) 学习GW48-CK EDA 实验开发系统的基本使用方法。

3) 了解VHD 程序的基本结构。

2. 实验内容加法器是数字系统中的基本逻辑器件,减法器和硬件乘法器都可由加法器来构成。

多位加法器的构成有两种方式:并行进位和串行进位。

并行进位加法器设有进位产生逻辑,运算速度较快;串行进位方式是将全加器级联构成多位加法器。

并行进位加法器通常比串行级联加法器占用更多的资源。

随着位数的增加,相同位数的并行加法与串行加法的资源占用差距也越来越大。

实践证明,4位二进制并行加法器和串行级联加法器占用几乎相同的资源。

这样,多位加法器由4位二进制并行加法器级联构成是较好的折中选择。

本实验的内容是:由两个4位二进制并行加法器级联而成构成一个8位二进制并行加法器。

3. 实验条件1) 开发软件:Lattice ispEXPERT.2) 实验设备:GW48-CK EDA 实验开发系统 3) 拟用芯片:EPF10KLC84-4。

4. 实验设计1) 系统的原理框图4位二进制并行加法器和串行加法器占用几乎相同的资源。

这样多位加法器由四位二进制并行加法器级联构成是较好的折中。

本设计中的8位二进制并行加法器即是由两个四位二进制并行加法器级联而成的,其电路原理图如下图:ADDER4B S8[3..0] S8[3..0]A8[3..0]] C8B8[3..0] SCA8[7..0] ADDER4BS8[7..4]B8[7..0] A8[7..4] B8[7.4] CO8C4 S4[3..0]A4[3..0]CO4B4[3..0]U1C4 S4[3..0]A4[3..0]CO4B4[3..0]U28位加法器电路原理图2)VHDL源程序①4位二进制并行加法器的源程序ADDER4B.VHDlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity adder4b isport(c4: in std_logic;a4:in std_logic_vector(3 downto 0);b4:in std_logic_vector(3 downto 0);s4:out std_logic_vector(3 downto 0);co4: out std_logic);end entity adder4b;architecture art of adder4b issignal s5:std_logic_vector(4 downto 0);signal a5,b5: std_logic_vector(4 downto 0);begina5<='0'&a4;b5<='0'&b4;s5<=a5+b5+c4;s4<=s5(3 downto 0);co4<=s5(4);end architecture art;②8位二进制加法器的源程序ADDER8B.VHDlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity adder8b isport (c8: in std_logic;a8: in std_logic_vector(7 downto 0);b8: in std_logic_vector(7 downto 0);s8: out std_logic_vector(7 downto 0);co8: out std_logic);end entity adder8b;architecture art of adder8b iscomponent adder4b isport(c4: in std_logic;a4: in std_logic_vector(3 downto 0);b4: in std_logic_vector(3 downto 0);s4: out std_logic_vector(3 downto 0);co4: out std_logic);end component adder4b;signal sc:std_logic;beginu1: adder4bport map(c4=>c8,a4=>a8(3 downto 0),b4=>b8(3 downto 0),s4=>s8(3 downto 0),co4=>sc);u2: adder4bport map(c4=>sc,a4=>a8(7 downto 4),b4=>b8(7 downto 4),s4=>s8(7 downto 4),co4=>co8);end architecture art;③管脚锁定文件管脚锁定文件ADDER8B.PPN的设计过程如表所示。

设计实体I/O标识设计实体I/O来源/去向插座序号芯片可用资源序号芯片管脚序号A8[0] 键1 PIO0 I/O0 5 A8[1] 键1 PIO1 I/O1 6 A8[2] 键1 PIO2 I/O2 7 A8[3] 键1 PIO3 I/O3 8 A8[4] 键2 PIO4 I/O4 9 A8[5] 键2 PIO5 I/O5 10 A8[6] 键2 PIO6 I/O6 11 A8[7] 键2 PIO7 I/O7 16 B8[0] 键3 PIO8 I/O8 17 B8[1] 键3 PIO9 I/O9 18 B8[2] 键3 PIO10 I/O10 19 B8[3] 键3 PIO11 I/O11 21 B8[4] 键4 PIO12 I/O12 22 B8[5] 键4 PIO13 I/O13 23 B8[6] 键4 PIO14 I/O14 24 B8[7] 键4 PIO15 I/O15 25 C8 键8 PIO49 I/O49 81S8[0] 译码器5 PIO16 I/O16 27S8[1] 译码器5 PIO17 I/O17 28S8[2] 译码器5 PIO18 I/O18 29S8[3] 译码器5 PIO19 I/O19 30S8[4] 译码器6 PIO20 I/O20 35S8[5] 译码器6 PIO21 I/O21 36S8[6] 译码器6 PIO22 I/O22 37S8[7] 译码器6 PIO23 I/O23 38CO8 发光管D8 PIO39 I/O39 655.实验结果及总结1)系统仿真情况系统功能仿真结果与时序仿真结果分别如图所示。

时序仿真结果:实验过程中出现的问题及解决办法:在编辑源程序的时候发现有很多错误,其中有一个版本问题,说的是“VHDL version error:END ENTITY is a VHDL 1993 feature,but project is being compiled for VHDL 1987”。

后经过老师在课程上讲解后明白了要切换版本。

后来就没有发现什么错误了。

解决在办法是:选中“Compiler窗体”在菜单栏单击“Interfaces” ”VHDL Netlist Reader Settings” 选中“VHDL 1993”。

实验三8位乘法器的设计一、实验目的1)学习ispEXPERT/MAX+plusII /foudation Series软件的基本使用方法。

2)学习GW48-CK EDA 实验开发系统的基本使用方法。

3)了解VHD程序的基本结构二、实验内容设计一个与门模块的源程序ANDARITH、16位锁存器、8位右移寄存器、乘法运算控制器,最后组成8位乘法器。

其乘法原理是:乘法通过逐项位移相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与上一次和相加;若为0,左移后以全零相加,直至被乘数的最高位。