ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:93.56KB ,
资源ID:11319805      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11319805.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VHDL实验报告范本模板.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VHDL实验报告范本模板.docx

1、VHDL实验报告范本模板 专用集成电路实验报告13050Z011305024237刘德文实验一 开发平台软件安装与认知实验实验内容1、 本实验以三线八线译码器(LS74138)为例,在Xilinx ISE 9.2软件平台上完成设计电路的VHDL文本输入、语法检查、编译、仿真、管脚分配和编程下载等操作。下载芯片选择Xilinx公司的CoolRunner II系列XC2C2567PQ208作为目标仿真芯片。2、 用1中所设计的的三线八线译码器(LS74138)生成一个LS74138元件,在Xilinx ISE 9.2软件原理图设计平台上完成LS74138元件的调用,用原理图的方法设计三线八线译码器

2、(LS74138),实现编译,仿真,管脚分配和编程下载等操作.源程序: 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 that are- provided for instantiating Xilinx primitive components。-library UNISIM;-use UNISIM。VComponents。al

3、l;entity ls74138 is Port ( g1 : in std_logic; g2 : 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=y=”00000001; when ”001=yy=00001000; wh

4、en ”100”=yy=”01000000”; when ”111=y=”10000000”; when others=y=00000000”; end case; else y=”00000000”; end if;end process;end Behavioral;波形文件: 生成元器件及连接电路思考:有程序可以看出,定义了三个输入端,一个输出端。g1,g2为使能输入端,当全为一时,开始执行宽度为三的输入inp,并听过程序实现三八译码器的功能。通过实验,分别用了原理图和vhdl语言两种方式进行调试。两种方法各有优缺点。对于原理图而言,可以清晰直观的看出电路各部分的构造,但却只能在原有的基

5、础上进行链接而无法随意修改元器件功能;vhdl语言则可以按照实际的需求进行编写程序,从而可以实现开发者想要实现的功能。实验二 组合逻辑电路的VHDL语言实现实验内容:1.用VHDL语言实现优先编码器的设计并实现功能仿真2。用VHDL语言实现四选一选择器的设计并实现功能仿真。1。优先编码器源程序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

6、priorityencoder;ARCHITECTURE rtl OF priorityencoder ISBEGIN PROCESS (input) BEGIN IF(input(0)=0) THEN y=111”; ELSIF(input(1)=0) 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

7、y=”000; END IF; END PROCESS;END rtl;波形图原理图:2.四选一选择器源程序:LIBRARY IEEE;USE 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,s

8、e1) 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(3); END IF; END PROCESS;END rt1;波形图原理图思考:1.优先编码器:通过程序定义了一个八位的输入端和一个三位的输入端。首先是通过八位的 输入端的最低位开始判断,如果是0,则输出为:111;如果是1,则判断第 二位,以此类推,直到最后一位,如果都不满足,则输出:000。2.四选一选择器:一共有三个输入,其中一个是宽度为四的可供选择的输入端,将一

9、个四位宽度的二进制码赋值给input端,通过a与b的输入选择input的输出。如ab为00时,则输出为:input(0),以此类推。实验三 时序逻辑电路的VHDL语言实验实验内容:(3选1)(一)、设计一个60进制的计数器(二)设计一带使能的同步复位清零的递增8位二进制计数器(三)设计一带使能的异步清零复位的递增8位二进制计数器六十进制(异步清零)源程序:library ieee;use ieee。std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ycounter is port(clk,clear,enable:in std_

10、logic; -ld:in std_logic; -d:in std_logic_vector(7 downto 0); qk:out std_logic_vector(7 downto 0);end ycounter;architecture a_ycounter of ycounter isbegin PROCESS (clk) VARIABLE cnt :std_logic_vector(7 downto 0); BEGIN IF (clkEVENT AND clk = 1) THEN IF(clear = 0) THEN cnt := ”00000000”; -ELSE IF(ld =

11、 0) THEN cnt := d; ELSE IF(enable = 1) THEN cnt := cnt + 00000001”; if(cnt=00111100)then cnt := 00000000”; end if; END IF; -END IF; END IF; END IF; qk = cnt; END PROCESS;end a_ycounter;波形图:六十进制(同步置数)源程序:library ieee;use ieee.std_logic_1164.all;use ieee。std_logic_unsigned.all;entity ycounter is port(

12、clk,clear,enable:in std_logic; ld:in std_logic; d:in std_logic_vector(7 downto 0); qk:out std_logic_vector(7 downto 0));end ycounter;architecture a_ycounter of ycounter isbegin PROCESS (clk) VARIABLE cnt :std_logic_vector(7 downto 0); BEGIN IF (clkEVENT AND clk = 1) THEN IF(clear = 0) THEN cnt := 00

13、000000; ELSE IF(ld = 0) THEN cnt := d; ELSE IF(enable = 1) THEN cnt := cnt + ”00000001”; if(cnt=00111011”)then Ld :=1; end if; END IF; END IF; END IF; END IF; qk = cnt; END PROCESS;end a_ycounter;波形图:思考:六十进制计数器的实现,1)异步清零程序的实现:通过判断最后一个状态,因为该计数器位六十进制,所以最后一个状态为59,用二进制码表示为:00111011”,即当计数器的状态为六十,即0011110

14、0状态时,计数器清零,输出00000000。2)同步置数程序的实现:当计数器达到状态,当计数器达到状态00111011”时,ld被赋值为0,执行置数功能,将d的值赋值给y,计数器从零开始计数。实验四 VHDL层次化设计方法实验实验内容: 设计一个8位移位寄存器。各个D触发器模块采用VHDL语言编写,分别用原理图、VHDL语言元件例化语句和生成语句的方法实现8位移位寄存器的设计。D触发器源程序:library IEEE;use IEEE。STD_LOGIC_1164。ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED。ALL;

15、- Uncomment the following lines to use the declarations that are- provided for instantiating Xilinx primitive components.library UNISIM;-use UNISIM.VComponents.all;entity Dchu is Port ( CLK : in STD_LOGIC; D : in STD_LOGIC; Q : out STD_LOGIC; CLEAR : in STD_LOGIC; Q_N : out STD_LOGIC);end Dchu;ARCHI

16、TECTURE BEH OF Dchu IS SIGNAL Q1:STD_LOGIC;BEGIN PROCESS (CLEAR,CLK,Q1) BEGIN IF CLEAR=0 THEN Q1=0; ELSIF CLKEVENT AND CLK=1 THEN Q1=D; END IF; END PROCESS; Q=Q1; Q_N=not Q1; END BEH;波形图:D触发器:八位移位寄存器:八位移位寄存器原理图: 元件例化:library IEEE;use IEEE。STD_LOGIC_1164。ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE。STD_

17、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 shift_reg_8_com is Port ( a,clk,rst : in STD_LOGIC; b: out STD_LOGIC);end shift_reg_8_com;ARCHITECTURE BEH OF sh

18、ift_reg_8_com IS Component dff1Port ( d,clk,rst : in STD_LOGIC; q: out STD_LOGIC);End component;Signal q:STD_LOGIC_VECTOR(8DOWNTO0);BEGIN q(0)=a;d0:dff1 PORT MAP(q(0),clk,rst,q(1);d1:dff1 PORT MAP(q(1),clk,rst,q(2));d2:dff1 PORT MAP(q(2),clk,rst,q(3));d3:dff1 PORT MAP(q(3),clk,rst,q(4));d4:dff1 PORT

19、 MAP(q(4),clk,rst,q(5));d5:dff1 PORT MAP(q(5),clk,rst,q(6));d6:dff1 PORT MAP(q(6),clk,rst,q(7);d7:dff1 PORT MAP(q(7),clk,rst,q(8);b=q(4);End str;生成语句: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 decla

20、rations that are- provided for instantiating Xilinx primitive components。-library UNISIM;-use UNISIM.VComponents。all;entity shift_reg_8_com is Port ( a,clk,rst : in STD_LOGIC; b: out STD_LOGIC);end shift_reg_8_com;ARCHITECTURE BEH OF shift_reg_8_com IS Component dff1Port ( d,clk,rst : in STD_LOGIC;

21、q: out STD_LOGIC);End component;Signal q:STD_LOGIC_VECTOR(8DOWNTO0);BEGIN q(0)=a;g1: FOR I IN 0 TO 7 GENERATEdx:dff1 PORT MAP(q(i),clk,rst,q(i+1));End generate g1;b=q(4);End str;实验结果(仿真结果)与分析 元件例化语句由两部分组成,元件说明语句和元件例化语句.首先要设计被上层电路调用的电路块,即D触发器模块,八位移位寄存器就是通过程序调用八个D触发器,每个D触发器都相当于一个模块。生成语句是将已设计好的D触发器的逻辑语句进行复制,从而生成一组结构上完全相同的设计单元的电路结构。从上面的两个程序可以看出,当所需要的组件比较少时,两种语句的大小差不多,但当所需要的组件比较多时,生成语句的执行效率明显的要变高,而且程序所占内存明显减少。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1