实验七 用always块实现较复杂的组合逻辑电路.docx
《实验七 用always块实现较复杂的组合逻辑电路.docx》由会员分享,可在线阅读,更多相关《实验七 用always块实现较复杂的组合逻辑电路.docx(5页珍藏版)》请在三一办公上搜索。
1、实验七用always块实现较复杂的组合逻辑电路实验目的1. 掌握用always实现较大组合逻辑电路的方法。2. 进一步了解assign与always两种组合电路实现方法的区别和注意点。实验内容1. 学习Verilog HDL设计课件。2. 运用always块设计一个8路数据选择器。要求:每路输入数据与输出数 据均为4位2进制数,当选择开关(至少3位)或输入数据发生变化时,输出数 据也相应地变化。实验原理参考Verilog HDL学习课件。使用assign结构来实现组合逻辑电路,如果逻辑关系比较复杂,不容易理解 语句的功能。而适当地采用always来设计组合逻辑,使源代码语句的的功能容 易理解。
2、下面是一个简单指令译码电路的设计示例。该电路通过对指令的判断,对输 入数据执行相应的操作,包括加、减、与、或和求反,并且无论是指令作用的数 据还是指令本身发生变化,结果都要做出及时的反应。显然,这是一个郊尾复杂 的组合逻辑电路,如果采用assign语句,表达起来非常复杂。示例中使用了电平 敏感的always块,所谓电平敏感的触发条件,是指在后的括号内电平列表中 的任何一个电平发生变化(与时序逻辑不同,它在后的括号内没有沿敏感关键 词,如posedge或negedge),就是触发always块的动作,并且运用了 case结构 来进行分支判断,不但设计思想得到直观的体现,而且代码看起来非常整齐,便
3、 于理解。模块源代码:/文件名alu.vdefine plus 3d0define minus 3d1define band 3d2define bor 3d3define unegate 3d4module alu(out,opcode,a,b);output7:0 out;reg7:0 out;input2:0 opcode;input7:0 a,b;always (opcode or a or b)begincase(opcode)plus: out=a+b;minus: out=a-b;band: out=a&b;bor: out=alb;unegate: out=a;default:
4、 out=8hx;endcaseendendmodule仿真结果如下:ii UX+plus II c: edaalu直俱 y a戒 启丞扇岛酷瀛 国矗口 场 遗|*|*| Time: 873.0nsc+ions Window Helpqa V no V cc0ns 400 0ns 500 0ns 600.0ns 700.0ns 800 0ns 900.0ns1.CAalu. scf 一 Tavefon Editor-v - Text EditorRet300 0nsName:Value:L_卢 opcode_卢a_声h三 v outJ 34|da.taa7 0J 34|da.tab7 0_卢
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验七 用always块实现较复杂的组合逻辑电路 实验 always 实现 复杂 组合 逻辑电路
链接地址:https://www.31ppt.com/p-5175046.html