- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编码译码双向总线
实验报告
一、译码器
实验步骤:
译码器中最常见的是3—8译码器,它有3个二进制输入端a、b、c和8个译码输出端y0~y7。对输入a、b、c的值进行译码,就可以确定输出端y0~y7的哪一个输出端变为有效(低电平),从而达到译码的目的。
3-8译码器还有3个选通输入端g1、g2、g3。只有在g1 1,g2 0,g3 0时,译码器才能正常译码,否则y0~y7输出均为高电平。
实验代码及解释如下:
library ieee;
use ieee.std_logic_1164.all;
entity decoder is --实体
port g1,g2,g3 : in std_logic; --选通输入端 a,b,c : in std_logic; --二进制输入端 y : out std_logic_vector 7 downto 0 --输出端,8位标准逻辑向量
;
end decoder;
architecture decoder38 of decoder is --结构体,名称的首位不能是数字
signal input:std_logic_vector 2 downto 0 ; --信号量,3位标准逻辑向量
begin
input a b c; --对信号量赋予变量
code:process g1,g2,g3,input --进程
begin
if g1 1 and g2 0 and g3 0 then --用if语句,描绘选通情况下输入与输出的关系 case input is --用case语句罗列各个情况(case语句是无优先级的) when000 y when001 y when010 y when011 y when100 y when101 y when110 y when111 y end case;
else --在未选通情况下,输出全1 y
end if;
end process;
end decoder
仿真结果如下:
在选通即g1 1,g2 0,g3 0的情况下,输出均与预想的一致。未选通的情况下,输出全1,也与预想的一致。在仿真结果中明显看到输出有毛刺,有延迟,但属正常情况。
实验感想:3-8译码器不是一个很难的实验,只要搞懂了译码器的原理,利用行为描述就可以实现。由于是自己编写,编译过程中,遇到了很多小问题,例如结构体名首位写成数字,忘记了if语句的then等等,不过都在编译的时候解决了。仿真的时候没有遇到什么问题,只是延迟和毛刺较严重。
二、编码器
实验步骤:
此编码器是一个具有8位输入和3位输出的具有优先级的编码器,与3-8译码器是相对应的。编码器没有选通端,只有输入端和输出端。当其某个输入有效时,就输出对应的3位二进制编码。
library ieee;
use ieee.std_logic_1164.all;
entity coder is --实体
port input : in std_logic_vector 7 downto 0 ; --输入,8位标准逻辑向量
output : out std_logic_vector 2 downto 0 --输出,3位标准逻辑向量
;
end coder;
architecture coder of coder is --结构体
begin
code:process input --进程
begin
if input 0 0 then --用if语句描绘编码的输入与输出,存在优先级 output 000; --优先级由0到7依次降低
elsif input 1 0 then output 001;
elsif input 2 0 then output 010;
elsif input 3 0 then output 011;
elsif input 4 0 then output 100;
elsif input 5 0 then output 101;
elsif input 6 0 then output 110;
else output 111;
end if;
end process;
end architecture;
仿真结果如下:
仿真结果和预想的一致,在8位二进制输入的0~7位分别为0时,输出是0~7的3位二进制形式。也有明显的延时和毛刺。
实验感想
文档评论(0)