《专用集成电路试验指导书.doc》由会员分享,可在线阅读,更多相关《专用集成电路试验指导书.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流专用集成电路试验指导书.精品文档.实验一 EDA软件实验实验性质:验证性 实验级别:必做开课单位:信息与通信工程学院通信工程系 学时:4学时一、实验目的:1、了解Xilinx ISE 6.2软件的功能。2、掌握Xilinx ISE 6.2的VHDL输入方法。3、掌握Xilinx ISE 6.2的原理图文件输入和元件库的调用方法。4、掌握Xilinx ISE 6.2软件元件的生成方法和调用方法。5、掌握Xilinx ISE 6.2编译、功能仿真和时序仿真。 6、掌握Xilinx ISE 6.2原理图设计、管脚分配、综合与实现、数据流下载方法。7
2、、了解所编电路器件资源的消耗情况。二、实验器材:计算机、Quartus II软件或xilinx ISE三、实验内容:1、 本实验以三线八线译码器(LS74138)为例,在Xilinx ISE 6.2软件平台上完成设计电路的VHDL文本输入、语法检查、编译、仿真、管脚分配和编程下载等操作。下载芯片选择Xilinx公司的CoolRunner II系列XC2C256-7PQ208作为目标仿真芯片。2、 用1中所设计的的三线八线译码器(LS74138)生成一个LS74138元件,在Xilinx ISE 6.2软件原理图设计平台上完成LS74138元件的调用,用原理图的方法设计三线八线译码器(LS741
3、38),实现编译,仿真,管脚分配和编程下载等操作。四、实验步骤:4.1 Xilinx ISE 6.2环境1、三线八线译码器(74LS138)VHDL电路设计(1)、三线八线译码器(74LS138)的VHDL源程序的输入打开Xilinx ISE 6.2编程环境软件Project Navigator,执行“file”菜单中的【New Project】命令,为三线八线译码器(74LS138)建立设计项目。项目名称【Project Name】为 “Shiyan”,工程建立路径为“C:XilinxbinShiyan”,其中“顶层模块类型(Top-Level Module Type)”为硬件描述语言(HD
4、L),如图1所示。图1点击【下一步】,弹出【Select the Device and Design Flow for the Project】对话框,在该对话框内进行硬件芯片选择与工程设计工具配置过程。各标签具体含义如下:l 【Device Family】:定义所选芯片器件族l 【Device】:定义器件名l 【Package】:定义器件封装形式l 【Speed Grade】:定义芯片工作速度等级l 【Top-Level Module Type】:定义顶层模块类型l 【Synthesis Tool】:定义综合工具l 【Simulator】:定义仿真测试工具l 【Generated Simul
5、ation Language】:定义硬件描述语言针对本试验所用开发板我们选择 “CoolRunner2 CPLDs”系列的 “XC2C256-7PQ208”器件作为目标芯片进行仿真,如图2所示。图2完成具体选择后点击【下一步】弹出如图3所示对话框,在该对话框内创建文件资源。图3打开【New Source】标签,弹出如图4所示对话框,在左侧方框中包含了用户可以创建的文件类型,包括以下内容:l 【Schematic】:原理图类型文件l 【State Diagram】:状态图类型文件l 【Test Bench Waveform】:波形类型测试文件l 【User Document】:用户类型文件l 【
6、Verilog Module】:Verilog类型文件l 【Verilog Test Fixture】:Verilog语言描述类型测试文件l 【VHDL Library】:VHDL库文件l 【VHDL Module】:VHDL类型模块文件l 【VHDL Package】:VHDL类型文件封装库l 【VHDL Test Bench】:VHDL语言描述类型测试文件图4在【File】标签下对话框内写入用户自定义的文件名称,标签【Locatior】下显示了新定义文件的创建路径,选中标签【Add to proje】前的对号标记,将新创建的文74ls138添加到工程 “Shiyan”中。点击【下一步】,弹
7、出如图5所示对话框,在此对话框中输入三线八线译码器(74LS138)的的端口信息。图5点击【下一步】弹出【New Source Information】对话框,在该对话框内显示了新建文件的属性及信息,如图6所示。图6点击【完成】返回资源创建对话框,其中显示了新建文件“LS74138.vhdl”,如图7。图7点击【下一步】弹出工程信息对话框【New Project Information】,该对话框给出了所设计的工程信息,如图8所示。 图8点击【完成】标签结束新建工程过程。进入Xilinx ISE文本编辑方式,在文本框中编辑输入8位加法器的VHDL源程序,如下图所示:library IEEE;u
8、se IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following lines to use the declarations that are- provided for instantiating Xilinx primitive components.-library UNISIM;-use UNISIM.VComponents.all;entity ls74138 is Port ( g1 : in std_logic; g2
9、: in std_logic; inp : in std_logic_vector(2 downto 0); y : out std_logic_vector(7 downto 0);end ls74138;architecture Behavioral of ls74138 isbeginprocess(g1,g2,inp)begin if(g1 and g2)=1) then case inp is when 000=yyyyyyyyy=00000000; end case; else y【Run】-【Restart】,将仿真时间点置零。在【transcript】窗口中输入仿真时间。在波形
10、【Wave】窗口内使用按钮实现仿真图的“放大”“缩小”“全局”功能。图17即为电路仿真结果,由图中时序及逻辑关系可知该三线八线译码器行为仿真正常。图17测试向量参考程序如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.numeric_std.ALL;ENTITY ls74138_tb_74138_vhd_tb ISEND ls74138_tb_74138_vhd_tb;ARCHITECTURE behavior OF ls74138_tb_74138_vhd_tb IS COMPONENT ls74138PORT(G1 : IN std_
11、logic;G2 : IN std_logic;INP : IN std_logic_vector( 2 downto 0); Y : OUT std_logic_vector(7 downto 0)END COMPONENT;SIGNAL G1 : std_logic;SIGNAL G2 : std_logic;SIGNAL INP : std_logic_vector( 2 downto 0);SIGNAL Y : std_logic_vector(7 downto 0);BEGINuut: ls74138 PORT MAP(G1 = G1,G2 = G2,INP = INP,Y = Y-
12、 * Test Bench - User Defined Section *u1:PROCESS BEGIN G1=0; wait for 10 us; G1=1; wait for 90 us; G1=0; wait; END PROCESS u1;u2:PROCESS BEGIN G2=0; wait for 10 us; G2=1; wait for 90 us; G2=0; wait; END PROCESS u2;u3:PROCESS BEGIN INP=000; wait for 20 us; INP=001; wait for 10 us; INP=010; wait for 1
13、0 us; INP=011; wait for 10 us; INP=100; wait for 10 us; INP=101; wait for 10 us; INP=110; wait for 10 us; INP=111; wait; end PROCESS u3;- * End Test Bench - User Defined Section *END behavior ;(4)芯片管脚定义如前所述添加用户定义限制文件,运行【Assign Package Pins】选项卡,Xilinx ISE将弹出管脚分配窗口,在如图19,输入各个端口管脚位置并保存,完成芯片管脚定义。图18 图19
14、(5)编译与综合图20 图21运行【Process for Source】中的【Implement Design】(图20),ISE将自动完成编译并调用内嵌的综合工具XST完成综合过程,运行结果如图21所示。编译通过后即自动生成了电路烧录下载文件(*.jed)以及资源消耗报告,通过该报告即可了解所设计电路的资源消耗情况。图22由图22可知,在三线八线译码器(74LS138)的设计中使用了8个宏单元,9个乘积项,8个寄存器单元,13个用户引脚及5个功能输入块。(5)、编程下载本试验用并行电缆将开发实验平台与计算机接在一起。确认下载电缆连接无误后执行Xilinx ISE的【iMPACT】命令,将三
15、线八线译码器(74LS138)设计文件下载到目标芯片XC2C256-7PQ208中,硬件验证所设计电路功能。2、元件的生成、调用和仿真1、新建原理图文件,命名为 “Sch_LS74138”并添加到工程“Shiyan”中,如图23。点击【下一步】完成原理图文件的创建。在弹出的原理图编辑框内选择【Symbols】标签,在其目录列表内显示了所有可用电路器件,其中包括了我们所设计的LS74138(图24)。图23 图24双击“ls74138”将其放置到原理图编辑区内。点击为器件添加外围端口,如图25所示。图25将原理图文件保存后返回【Xilinx Project Navigator】平台,此时已经将程
16、序所设计的器件“LS74138”配置给了原理图文件“sch_ls74138”,其余电路仿真、管脚配置、编译、综合以及电路下载等过程与文本设计方式一致,在此不在重复说明。五、预习与思考:思考:比较VHDL语言和原理图的设计方法,这两种设计各有哪些优缺点。实验二 组合逻辑电路的VHDL语言实现实验性质:验证性 实验级别:必做开课单位:信息与通信工程学院通信工程系 学时:2学时一、实验目的:1、掌握VHDL语言设计基本单元及其构成2、掌握用VHDL语言设计基本的组合逻辑电路的方法。3、掌握VHDL语言的主要描述语句。二、实验器材:计算机、Quartus II软件或Xilinx ISE三、实验内容:1
17、、本实验以1位全加器为例,在Xilinx ISE软件平台上完成设计电路的VHDL文本输入,编辑,编译,仿真,管脚分配和编程下载等操作。下载芯片选择Xilinx公司的CoolRunner II系列XC2C256-7PQ208作为目标仿真芯片。2、用实验内容1所设计的全加器的VHDL文件生成一个adder的元件,在Xilinx ISE软件原理图设计平台上完成adder元件的调用,用原理图的方法设计一个8位二进制加法器,实现编译,仿真,管脚分配和编程下载等操作。3、或优先编码器、多路选择器等其它电路。四、实验步骤:(一)、用VHDL语言实现八位加法器的设计并实现功能仿真。全加器是带进位位信号的加法器
18、,起逻辑表达式为: 。它的真值表如表1所示,其中和为加数与被加数,是输入的进位位信号,而是和数,是输出进位位信号。参考真值表,实现八位全加器的功能。表1 输入输出0000000110010100110110010101011100111111一)1位加法器的VHDL源程序参考如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following lines to use the declarations t
19、hat are- provided for instantiating Xilinx primitive components.-library UNISIM;-use UNISIM.VComponents.all;entity adder is Port ( a : in std_logic; b : in std_logic; cin : in std_logic; sum : out std_logic; cout : out std_logic);end adder;architecture Behavioral of adder isbegin sum = (a xor b) xor
20、 cin; cout a,b = b,cin = cin,sum = sum,cout = cout u1: PROCESS BEGIN a=0; wait for 10 us; a=1; wait for 20 us; a=0; wait for 10 us; a=1; wait for 10 us; a=0; wait for 20 us; a=1; wait for 10 us; a=0; wait for 10 us; a=1; wait; END PROCESS u1; u2:processbegin b=1;wait for 10 us;b=0;wait for 10 us;b=1
21、;wait for 10 us;b=0;wait for 10 us;b=1;wait for 20 us;b=0;wait for 10 us;b=1;wait for 10 us;b=0;wait for 20 us;b=1;wait; END PROCESS u2; u3: process begin cin=0; wait for 40 us;cin=1;wait for 20 us;cin=0; wait;end process u3;END behavior;仿真图如下1所示: 图 1管脚分配和编程下载如实验一,这里不再累述。二)用实验内容1所设计的全加器的VHDL文件生成一个ad
22、der的元件,在Xilinx ISE软件原理图设计平台上完成adder元件的调用,用原理图的方法设计一个8位二进制加法器:在步骤一)在processer for Source:”adder”窗口点击Create Schematic Symbol如下图2所示,生成adder的元件,在Sources in Project 窗口新建Schematic 文件 命名adder8 ,如下图3所示,在Xilinx ECS平台上点Symbols如图4所示,添加8个adder到原理图编辑区域,连接各元件并添加引脚,如图5 图 2 图 3 图 4图 5仿真结果如下图:(二)、用VHDL语言实现优先编码器的设计并实
23、现功能仿真优先计编码器常用于中断的优先级控制,以8输入,3位二进制输出的优先级编码器为例,当其中一个输入有效时,就可以输出一个对应得3位二进制 编码。另外,当同时有几个输入有效时,将输出优先级最高的那个输入所对应得二进制编码。其真值表如下所示:表2 优先编码器真值表输入二进制编码输出Input7Input6Input5Input4Input3Input2Input1Input0Y2Y1Y0xxxxxxx0111xxxxxx01110xxxxx011101xxxx0111100xxx01111011xx011111010x0111111001x1111111000用VHDL语言实现优先编码器的设
24、计并实现功能仿真验证其功能。参考程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY priorityencoder IS PORT (input:IN STD_LOGIC_VECTOR (7 DOWNTO 0); y:OUT STD_LOGIC_VECTOR (2 DOWNTO 0);END priorityencoder;ARCHITECTURE rt1 OF priorityencoder ISBEGIN PROCESS (input) BEGIN IF(input(0)=0) THEN y=111; ELSIF(input(1)=0)
25、 THEN y=110; ELSIF(input(2)=0) THEN y=101; ELSIF(input(3)=0) THEN y=100; ELSIF(input(4)=0) THEN y=011; ELSIF(input(5)=0) THEN y=010; ELSIF(input(6)=0) THEN y=001; ELSE y input,y = y- * Test Bench - User Defined Section * tb : PROCESS BEGIN input=11011010;wait for 10 us;input=11101101;wait for 10 us;
26、input=10110011;wait for 10 us;input=11010111;wait for 10 us;input=01101111;wait for 10 us;input=11011111;wait for 10 us;input=10111111;wait for 10 us;input=11111111;wait for 10 us;input=01111111;wait for 10 us;input=11011011;wait for 10 us;input=11011111;wait for 10 us;input=11111001;wait for 10 us;
27、 END PROCESS tb;- * End Test Bench - User Defined Section *END behavior;仿真图如下:(三)、用VHDL语言实现四选一选择器的设计并实现功能仿真。选择器常用于信号的切换,四选一选择器可以用于4路信号的切换。其真值表如下所示: 表3 四选一真值表选择输入数据输入数据输出baInput0Input1Input2Input3y000xxx0001xxx101x0xx001x1xx110xx0x010xx1x111xxx0011xxx11用VHDL语言实现四选一选择器的设计并实现功能仿真。参考程序如下:LIBRARY IEEE;US
28、E IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 IS PORT (input:IN STD_LOGIC_VECTOR (3 DOWNTO 0); a,b:IN STD_LOGIC; y:OUT STD_LOGIC);END mux4;ARCHITECTURE rt1 OF mux4 ISSIGNAL se1:STD_LOGIC_VECTOR (1 DOWNTO 0);BEGIN se1=b&a; PROCESS (input,se1) BEGIN IF(se1=00)THEN y=input(0); ELSIF(se1=01)THEN y=input(1); ELSIF(se1=10)THEN y=input(2); ELSE y input,a = a,b = b,y = y- * Test Bench - User Defined Section *u1: PROCESS BEGIN a=0;wait for 30 us;a=1;wait for 30 us;a=0;wait for 10 us;a=1;wait; END PROCESS u1;u2: process begin b=0; wait for 20 us; b=1; wait for 40 us