版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、可编程ASIC技术课程作业20151.请模拟和分析下面的Verilog HDL模块,解释它们的描述,绘制相应的逻辑图或编写逻辑表达式(组),并大致解释它们的逻辑功能。模块exe1n(out、d3、d2、d1、d0、s1、s0);输出输出;输入d3、d2、d1、d0、s1、s0;not (not_s1,s1),(not_s0,s0);和(out0,d0,not_s1,not_s0),(out1,d1,not_s1,s0);和(out2,d2,s1,not_s0),(out3,d3,s1,s0);或(out,out0,out1,out2,out 3);结束模块对程序进行功能模拟,功能模拟图如下:(
2、1)当S1=0且S0=0时(2)当S1=0且S0=1时(3)当S1=1且S0=0时(4)当S1=1且S0=1时从模拟图的分析可知,输出通道根据不同的s1和s0而变化:(1)当S1=0且S0=0时,out=d0(2)当S1=0且S0=1时,out=d1(3)当S1=1且S0=0时,out=d2(4)当S1=1且S0=1时,out=d3。逻辑表达式组:Out=d(s1s2)实现的逻辑功能是典型的4对1数据选择器。2.请模拟和分析以下Verilog HDL模块,用时间序列波形图或流程图描述它们的行为,并简要说明它们的逻辑功能。如果输出fd_out的占空比为50%,则需要对此模块进行哪些修改?模块ex
3、e2n(fd_out、clk、d、clr);输出fd _ outreg fd _ out输入15:0d;输入clk,clrreg15:0CNT;总是(posedge clk)开始如果(!clr)CNT=4h 0000;elsebeginCNT=CNT-1;如果(cnt=0)开始FD _ out=1;cnt=d。目标否则FD _ out=0;目标目标结束模块(1)对程序进行功能仿真,仿真波形图如图所示:从图中可以看出,该程序实现了一个可变模数减法计数器,每当达到设定的模数值时输出1,这相当于检测设定的模数。(2)如果输出fd_out的占空比为50%,则可以指定模数d=1,如下图所示:3.请模拟和
4、分析下面的Verilog HDL模块,写出相应的逻辑表达式(组)或真值表,并简要说明它们的逻辑功能。模块exe3n(op_result,func_sel,op_a,op _ b);输出7:0op _ result;输入2:0func _ sel;输入3:0 op_a、op _ b;reg7:0op _ result;始终 (func_sel或op_a或op_b)开始案例(func_sel)3b000:op_result=op_a op_b。3b001:op_result=op_a - op_b。3b010:op_result=op_a * op_b。3b011:op_result=op_a/o
5、p_b。3b100:op_result=op_a op_b。3b101:op_result=op_a | op_b。3b110:op运算结果=运算结果a 运算结果b;3b111:op运算结果=运算结果a 运算结果b;endcase目标结束模块对程序进行功能模拟。功能模拟的波形如图所示:(1)当fun_sel=000时,op_result=op_a op_b(2)当fun_sel=001时,op _ result=op _ a-op _ b;(3)当fun_sel=010时,op _ result=op _ a * op _ b;(4)当fun_sel=011时,op _ result=op _
6、 a/op _ b;(5)当fun_sel=100时,op _ result=op _ a op _ b;(6)当fun_sel=101,op _ result=op _ a | op _ b;(7)当fun_sel=110时,op _ result=op _ a op _ b;(8)当fun_sel=111时,op _ result=op _ a op _ b;由此可见,该程序实现的功能有:根据不同的输入选择信号(000,001,010,011,100,101,110,111),两个四位二进制数相加、相减、相乘、相除、或、异或或。4.请使用连续赋值语句设计一个Verilog HDL模块,该模
7、块可以实现一个带使能终端(E=1使能)的双4对1数据选择器。双4对1启用的数据选择器程序;模块exe4n(out、in0、in1、in2、in3、in4、in5、in6、in7、sel、en);输入in0、in1、in2、in3、in4、in5、in6、in7输出输出;输入2:0sel;输入en;reg out。总是(in0或in1或in2或in3或in4或in5或in6或in7或sel)开始如果(en)out=0;否则开始案例(sel)3b000: out=in03b001: out=in13b010: out=in23b011: out=in33b100:输出=输入4;3b101:输出=输
8、入5;3b110:输出=输入6;3b111:输出=输入7;default: out=3bxendcase目标目标结束模块当使能端en=1无效时,OUT=0;当使能端en=0有效时,out根据sel选择输出;5.请使用Verilog HDL或VHDL设计一个功能和引脚类似于74138的解码器,并在Quartus下进行模拟和验证。解码器程序:模块exe5n(输出、输入、en);输出7:0输出;/*定义8位二进制代码输出*/输入2:0in;/*定义3位二进制代码输入端口*/输入2:0en;/*三个启用的终端*/reg7:0out;总是(in或en)开始if(en=3b100)案例(in)3d0: o
9、ut=8b3d1: out=8b3d2: out=8b3d3: out=8b3d4: out=8b3d5: out=8b3d6: out=8b3d7: out=8bendcase否则out=8b目标结束模块解码器模拟波形6.请使用Verilog HDL或VHDL设计一个8位移位寄存器,可以同步预置,也可以异步清零,并在Quartus下进行仿真验证。可预置和可清除移位寄存器程序:模块exe6n(out、in、reset、set、clk);输出7:0输出;/*定义四位输出*/输入输入、复位、置位、clk/*输入信号、清除结束、设置结束、时钟信号*/reg7:0out;reg7:0 md。/*设置寄
10、存器*/总是(posedge clk)开始开始md=4b结束/*此处的预设号码是,并且可以根据需要进行更改*/if(复位)start out=0;目标其他开始if(set)开始=md结束/*将信号设置为1,设置*/其他begin out=out,in。目标目标目标结束模块移位寄存器模拟波形图7.请使用Verilog HDL或VHDL设计一个由上升沿触发的预置可清零的256位计数器,并在Quartus下进行仿真验证。如果要改成60位计数器,应该对设计做什么修改?(1)一个预置的可归零的256位计数器程序:模块exe7n(out、in、reset、set、clk);输出7:0输出;/*计数器的输出
11、*/输入7:0in;/*预设初始值的输入段*/输入复位、置位、clkreg7:0out;总是(posedge clk)开始如果(!reset)out=8h;/*清除结束,低电平有效*/否则,如果(设置)出=入;/*预设*/否则out=out 1;目标结束模块模拟波形:(2)预设可归零的60位计数器程序:模块exe7n(out、in、reset、set、clk);输出7:0输出;/*计数器的输出*/输入7:0in;/*预设初始值的输入段*/输入复位、置位、clkreg7:0out;总是(posedge clk)开始如果(!复位)| |(out=8b)out=8h;/*此处清0,实现十进制*/否则
12、,如果(设置)出=入;/*预设*/否则out=out 1;目标结束模块模拟波形:8.请使用Verilog HDL分别使用结构描述、数据流描述和行为描述来设计一个8位级联加法器(带进位输入和进位输出),并比较上述三种描述方法的优缺点。8位加法器结构描述程序:/*主程序*/模块exe8n(sum,cout,a,b,CIN);输入CIN;输入7:0 a,b;输出7:0总和;输出coutfull_add1 f0(a0,b0,cin,和0,cin1);full_add1 f1(a1,b1,cin1,sum1,CIN 2);full_add1 f2(a2,b2,cin2,sum2,CIN 3);full_
13、add1 f3(a3,b3,cin3,sum3,CIN 4);full_add1 f4(a4,b4,cin4,sum4,CIN 5);full_add1 f5(a5,b5,cin5,sum5,CIN 6);full_add1 f6(a6,b6,cin6,sum6,CIN 7);full_add1 f7(a7,b7,cin7,sum7,CIN 8);Endmodule/*呼叫者*/模块full_add1(a,b,cin,sum,cout);输入a、b、CIN;输出总和,cout导线s1、m1、m2、m3;和(m1,a,b),(m2,b,cin),(m3,a,CIN);异或(s1,a,b),(和,s1,CIN);或(cout,m1,m2,m3);结束模块8位加法器数据流描述程序;模块exe82n(计数、总和、a、b、CIN);/*进位信号,和,两个加法器,低进位信号*/输入CIN;/*低进位信号,作为低加法器,信号为0;作为高阶加法器,该信号变化*/输入7:0 a,b;输出7:0总和;输出计数;分配count,sum =a b CIN;结束模块模拟波形8位加法器行为描述程序:模块exe83n(计数、总和、a、b、CIN);输入CIN;/*低进位信号,作为低加法器,信号为0;作为高阶加法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年小学数学教研组工作总结
- 2026年电饭煲干烧起火事故原因及使用禁忌
- 2026年女性宫寒艾灸调理方法与技巧
- 2026年养老机构智慧养老平台功能需求清单
- 2026年安防工程隐蔽工程签证记录
- 练习18《探究文本的深层意蕴》(含答案解析) 2027学年高考语文一轮总复习
- 2026年华中科技大学计算机图形学实验指导
- 2026年监理工程师通知单回复技巧
- 2026年辩论式主题班会实录评析
- 固定资产折旧计算合同范本
- 2026年设备出售转让合同(1篇)
- 2026年事业单位面试结构化100例
- 河南省2026年普通高等学校对口招收中等职业学校毕业生考试机电与制造类基础课试卷
- 河南省农村中小学闲置校园校舍的调查与再生路径研究
- 黑龙江省控制性详细规划编制规范
- 饮用水水质PH值安全控制检测标准
- 小针刀治疗腱鞘炎-课件
- DB11T 364-2023 建筑排水柔性接口铸铁管管道工程技术规程
- 国际经济学克鲁格曼中文
- GB/T 1920-1980标准大气(30公里以下部分)
- “天然气11.20”事故纪实(定)
评论
0/150
提交评论