- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA技术与应用
实验报告
实验名称:
格雷码、二进制转换电路
姓 名:
Aa
学 号:
120403
班 级:
12级电科
时 间:
2014.11.10
南京理工大学紫金学院电光系
实验目的(四号+黑体)
1)学习VHDL代码修改。
2)利用when…else… 并行语句描述4位格雷码/二进制码转换电路。
3)利用generate并行语句描述n位格雷码/二进制码转换电路。
4) 利用实验箱验证所设计电路的正确性,要求将输入输出的数据用数码管显示。
实验原理
4位格雷码转换为二进制表达式为:
n位格雷码转换为二进制表达式为:
WHEN ELSE 条件信号赋值语句
目标信号=表达式1 when 条件1 else
表达式2 when 条件2 else
......
表达式n-1 when 条件n-1 else
表达式n;
GENERATE语句
标号:for 循环变量 in 离散范围 generate
并行处理语句;
end generate 标号;
实验内容
实验的代码1::
library ieee;
use ieee.std_logic_1161.all;
entity gtob_1 is
port(g1,g2,g3,g4:in std_logic;
b1,b2,b3,b4:buffer std_logic);
end;
architecture rhi of gtob_1 is
begin
b4=g4;
b3=b4 xor g3;
b2=b3 xor g2;
b1=b2 xor g1;
end rhi;
实验的代码2
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity gtob_2 is
port(g:in std_logic_vector(3 downto 0);
b:buffer std_logic_vector(3 downto 0));
end gtob_2;
architecture rhg of gtob_2 is
begin
b=0000when g=0000 else
0001when g=0001 else
0011when g=0010 else
0010when g=0011 else
0111when g=0100 else
0110when g=0101 else
0100when g=0110 else
0101when g=0111 else
1111when g=1000 else
1110when g=1001 else
1100when g=1010 else
1101when g=1011 else
1000when g=1100 else
1001when g=1101 else
1011when g=1110 else
1010;--when g=0000 else
end rhg;
实验代码3:
library ieee;
use ieee.std_logic_1164.all;
entity gtob_3 is
port(g:in std_logic_vector(3 downto 0);
b:out std_logic_vector(3 downto 0));
end gtob_3;
architecture rhg of gtob_3 is
begin
process (g)
begin
case g is
when 0000=b=0000 ;
when0001=b=0001 ;
when0011=b=0010 ;
when0010=b=0011 ;
when 0111=b=0100 ;
when 0110=b=0101 ;
when 0100=b=0110 ;
when 0101=b=0111 ;
when1111=b=1000 ;
when1110=b=1001;
when1100=b=1010;
when 1101=b=1011 ;
when1000=b=1100;
when1001=b=1101 ;
when1011=b=1110 ;
when 1010=b=1100;--when g=0000 else
end case;
end process;
end rh
文档评论(0)