基于FPGA采用模块化思路设计一个译码器_第1页
基于FPGA采用模块化思路设计一个译码器_第2页
基于FPGA采用模块化思路设计一个译码器_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于FPGA采用模块化思路设计一个译码器本次实验的任务是构建一个3-8译码器,且将译码结果通过小脚丫的LED灯显示。听上去并不难,而且我能想象到,一定会有不少同学会立刻开始画一个8行的真值表,然后通过卡诺图进行化简,且根据最终的逻辑表达式画出门电路图。这个方法当然没有错,不过,如果面对更多位数的系统,比如4-16或者是8-256的译码器,建一个几百行的真值表并进行逻辑运算听上去似乎不那么科学。在这里我们将采用模块化的思路来完成我们的实验设计。在开始进行模块化设计之前,我们先做一个2-4译码器,也就是译码器系列中最底层的基础模块。表12-4译码器真值表这次的代码我们采用行为级描述(Behavioral-level)的写法,直接根据真值表将输入与输出的各种组合进行直接关联。可以看出,行为级的写法甚至不需要构建门电路,仅通过输入输出对应关系即可构建,因此最为抽象。moduledecode24(inputwire[1:0]A,//定义两位输入outputreg[3:0]Y//定义输出的4位译码结果对应的led);always@(A)//always块语句,a值变化时执行一次过程块begincase(A)2'b00:Y=4'b0001;//2-4译码结果2'b01:Y=4'b0010;2'b10:Y=4'b0100;2'b11:Y=4'b1000;endcaseendendmodule有了最基础的模块,如何通过它搭建出3-8译码器呢?现在,我们在原有的真值表上加上一路使能信号E,再来观察一下新的真值表。可以发现,当E为低电平时,不论输入的取值如何,前四位输出均为0。当E为高电平时,右侧仍然为2-4译码器的输出结构。表22-4译码器真值表(加使能信号)我们可以把表3看作为一个3-8译码器的真值表,只不过输入端的最高位由E代替。由于E为低电平时输出最高的四位均为0,因此确保我们在对后四位输出(黄色)进行赋值不会影响到前四位的输出。表33-8译码器真值表从表3不难看出,黄框和红框对应的其实就是一个带有使能端的2-4译码器,且使能端E控制着前后半端位数的输出结果。也就是说,一个3-8译码器可以由两个2-4译码器构成。同理,一个4-16译码器可以由两个3-8译码器构成,以此类推。带有使能E的2-4译码器如下图所示。实际上就是在之前的代码上稍做修改,在这里我们就不详细写出来了,给大家自行练习的机会。接下来,按照之前的分析,我们画出由两个2-4译码器组成的3-8译码器的结构。以下是用Verilog写的一个3-8译码器,在程序里我们调用了两次2-4译码器的子模块。注意,子模块的文件需要和decode38文件放在同一个工程目录下,不然就成了隔壁老王了。moduledecode38(inputwire[2:0]X,outputwire[7:0]D);decode24upper//调用第一个子模块,命名为upper(.a(X[1:0]),//将大模块的X1,X0与lower的A1,A0匹配.E(X[2]),//将大模块的X2与lower的E匹配.Y(D[7:4])//将大模块的D7-D4与lower的Y3-Y0匹配);decode24lower//调用第二个子模块,命名为lower(.a(X[1:0]),//将大模块的X1,X0与lower的A1,A0匹配.E(!X[2]),//将大模块的X2与lower的E匹配.Y(D[3:0])//将大模块的D7-D4与lower的Y3-Y0匹配);endmodule当你反复在图和代码之间徘徊几轮,并有了多么痛的领悟之后,你就可以把自己编译好的程序下载到小脚丫里,然后通过实验测试你的代码了。练习一下,当我们把输出D7-D1分别对应为小脚丫上的L7-L1,且输入X2-X0分别对应至小脚丫的SW3-SW1,请判

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论