2745|0

21

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【FPGA礼物教程】用FPGA实现3-8译码器,适合FPGA初学者 [复制链接]

FPGA礼物教程】用FPGA实现3-8译码器,适合FPGA初学者
译码器是组合逻辑电路的一个重要的器件,其可以分为:变量译码和显示译码两类。 变量译码一般是一种较少输入变为较多输出的器件,一般分为2N次方译码和8421BCD码译码两类。
74138是一种3线—8线译码器 ,三个输入端CBA共有8种状态组合(000—111),可译出8个输出信号Y0—Y73-8译码器的详细说明请参考相关资料,本文使用Verilog实现一个简单的3-8译码器,并在硬件上验证,供FPGA初学者参考。
所用软件Quartus 10.0 SP1
硬件:冠方科技 FPGA礼物开发A3 mini
核心芯片CycloneIII EP3C5

3-8译码器有3个输入,8个输出,和3个使能位。
FPGA礼物开发板A3 mini上有四个滑动开关,可以选择三个作为译码器输入,为了简化,使能位我们只用一个,使用第四个滑动开关作为使能位输入。开发板上有四个LED,作为译码器输出的高四位,使用数码管的四个小数点做为译码器输出的低四位。参照下图。
3-8.JPG


Verilog代码module decoder3_8(dout,din,de,dp,);output[7:0] dout; input[2:0]
din;
input
de;
output
dp;

reg[7:0]
dout_r;

always @(de)

begin

if(de==0) dout_r=8'b11110000;

else

begin

dout_r=8'b00000001<<din;

dout_r=~dout_r;


dout_r=((~dout_r)|8'b11110000)&(dout_r|8'b00001111);

end


end

assign dout=dout_r;

assign dp=1;
endmodule
其中,dout为译码器输出,din为译码器输入,de为使能端。dp为数码管小数点,因为fpga礼物开发板上使用的是共阴数码管,dp需要一直保持高电平,通过给数码管选择位低电平来点亮数码管小数点。而点亮led需要给高电平,为了保持显示效果一致,我们在相应位需要取反。
  if(de==0) dout_r=8'b11110000;本来输出应该为8’b11111111,为了显示效果,第四位取反dout_r=8'b00000001<<din;dout_r=~dout_r;这两行代码实现了3-8译码器逻辑,不清楚的可以参照3-8译码器真值表。dout_r=((~dout_r)|8'b11110000)&(dout_r|8'b00001111);也是为了显示效果需要,低四位取反。
3-8译码器是组合逻辑的典型,初学者可以自己动手,练练其他的组合逻辑,练习多了,自然就掌握了。

pdf下载保存   3-8译码器.pdf (197.64 KB, 下载次数: 8)
此帖出自信息发布论坛
点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表