可编程ASIC技术课程作业.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可编程ASIC技术课程作业

可编程ASIC技术课程作业请对下列Verilog HDL模块进行仿真和分析,说明其描述方式,画出对应的逻辑图或写出逻辑表达式(组),并概括地说明其逻辑功能。module exe1(out, d3, d2,d1,d0, s1,s0);output out;input d3, d2,d1,d0, s1,s0;not (not_s1,s1), (not_s0,s0);and (out0, d0, not_s1, not_s0), (out1, d1, not_s1, s0);and (out2, d2, s1, not_s0), (out3, d3, s1, s0);or (out, out0, out1, out2, out3);Endmodule答:该程序逻辑功能为,根据不同的s1和s0,输出通道改变: 当s1=0,s0=0时,out0=d0;当s1=0,s0=1时,out1=d1; 当s1=1,s0=0时,out2=d2; 当s1=1,s0=1时,out3=d3;逻辑表达式组为:out0=S1S0d0 out1=S1S0d1 out2=S1S0d2out3=S1S0d3out=out0+out1+out2+out3实现的逻辑功能为典型的数据通道选择器。2.请对下列Verilog HDL模块进行仿真和分析,用时序波图形或流程框图描述其行为,并概括地说明其逻辑功能。如果要使输出fd_out的占空比为50%,需要对该模块做什么修改?module exe2(fd_out, clk, d, clr);output fd_out;reg fd_out;input [15:0] d;input clk, clr;reg [15:0] cnt;always @(posedge clk)beginif (!clr) cnt = 4h0000;elsebegincnt = cnt - 1;if (cnt==0) begin fd_out = 1; cnt = d; endelse fd_out = 0;endendEndmodule(1)原程序时序波形图:该程序实现的是可变模的减法计数器,输出的是每当到达设定模值就输出1,相当于对设定模进行检测。(2)要使输出fd_out的占空比为50%,对该模块做出如下修改:module exe2(fd_out, clk, d, clr);output fd_out;reg fd_out;input [15:0] d;input clk, clr;reg [15:0] cnt;always @(posedge clk)beginif (!clr) cnt = 4h0000;elsebegincnt = cnt - 1;if (cnt==0) begin fd_out = 1; cnt = 1; endelse fd_out = 0;endendEndmodule修改程序后的时序波图:3. 请对下列Verilog HDL模块进行仿真和分析,写出对应的逻辑表达式(组)或真值表,并概括地说明其逻辑功能。module exe3(op_result, func_sel, op_a, op_b);output [7:0] op_result;input [2:0] func_sel;input [3:0] op_a, op_b;reg [7:0] op_result;always @ (func_sel or op_a or op_b)begincase (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 / op_b;3b100:op_result = op_a op_b;3b101:op_result = op_a | op_b;3b110:op_result = op_a ^ op_b;3b111:op_result = op_a ~^ op_b;endcaseendEndmodule原程序的时序波图:该程序逻辑功能为:(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_a / op_b;(5) 当fun_sel=100时,op_result = op_a op_b;(6) 当fun_sel=101时,op_result = op_a | op_b;(7) 当f

文档评论(0)

此项为空 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档