欢迎来到天天文库
浏览记录
ID:18585867
大小:1.35 MB
页数:32页
时间:2018-09-19
《vhdl语言与数字系统设计--西电》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、科目:VHDL语言与数字系统EDA设计专业:微电子与固体电子学学生姓名:陈庆宇提交日期:2011年5月26号目录实验一······································1实验二······································5实验三······································9实验四······································11实验五······································17作业·
2、·······································27-29--29-VHDL与数字系统设计陈庆宇1000030021Ø实验一1.实验内容1.用IF语句设计一个四-十六译码器;2.用CASE语句设计一个四-十六译码器;3.用GENERATE语句构造一个串行的十六进制计数器。2.实验目的会用VHDL语言实现一些简单的组合逻辑和时序逻辑,学会使用相关EDA软件进行VHDL代码的输入、仿真。3.实验方案本实验有三个小实验组成,先分别将方案分别列出:a:用IF语句设计一个四-十六译码器接口信号的定义如图--1:g1,
3、g2a,g2b为片选信号,sel为输入编码,y为译码输出图-1b:用CASE语句设计一个四-十六译码器接口定义同样的如图-1:g1,g2a,g2b为片选信号,sel为输入编码,y为译码输出c:用GENERATE语句构造一个串行的十六进制计数器先用行为描述设计一个D触发器,然后用结构描述的方法将四个D触发器用特定的接法连接起来。其中clk、clr为时钟和清零输入,q为计数输出。图-2即综合器生成的RTL框图。图-2十六进制计数器的RTL框图-29-VHDL与数字系统设计陈庆宇10000300211.仿真结果(仿真软件:QuartusII7
4、.2)a:用IF语句实现的四-十六译码器的仿真结果上图为:片选信号无效的时候的仿真波形,输出为高电平。上图为:片选信号有效的时候的仿真波形。b:用CASE语句实现的一个四-十六译码器的仿真结果(直接让片选有效)c:用GENERATE语句构造的串行的十六进制计数器的仿真波形注:当clr为0时对计数结果清零,时钟上升沿计数器加1.-29-VHDL与数字系统设计陈庆宇10000300211.关键部分代码a:用IF语句设计一个四-十六译码器PROCESS(G1,g2a,g2b,sel)beginif(g1='1'andg2a='0'andg2b
5、='0')thenif(sel="0000")theny<="1111111111111110";elsif(sel="0001")theny<="1111111111111101";elsif(sel="0010")theny<="1111111111111011";elsif(sel="0011")theny<="1111111111110111";elsif(sel="0100")theny<="1111111111101111";elsif(sel="0101")theny<="1111111111011111";elsif(s
6、el="0110")theny<="1111111110111111";elsif(sel="0111")theny<="1111111101111111";elsif(sel="1000")theny<="1111111011111111";elsif(sel="1001")theny<="1111110111111111";elsif(sel="1010")theny<="1111101111111111";elsif(sel="1011")theny<="1111011111111111";elsif(sel="1100")the
7、ny<="1110111111111111";elsif(sel="1101")theny<="1101111111111111";elsif(sel="1110")theny<="1011111111111111";elsif(sel="1111")theny<="0111111111111111";elsey<="XXXXXXXXXXXXXXXX";endif;elseY<="1111111111111111";endif;endprocess;b:用CASE语句设计一个四-十六译码器caseseliswhen"0000"=>y<=
8、"1111111111111110";when"0001"=>y<="1111111111111101";when"0010"=>y<="1111111111111011";when"0011"=>y<="
此文档下载收益归作者所有