可编程ASIC设计作业解读.doc

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《可编程ASIC技术》课程作业2015 1.请对下列Verilog HDL模块进行仿真和分析,说明其描述方式,画出对应的逻辑图或写出逻辑表达式(组),并概括地说明其逻辑功能。 module exe1n(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 将程序进行功能仿真,功能仿真图如下所示: (1)当s1=0,s0=0时 (2)当s1=0,s0=1时 (3)当s1=1,s0=0时 (4)当s1=1,s0=1时 由仿真图分析知,根据不同的s1和s0,输出通道进行变化: 当s1=0,s0=0时,out=d0; 当s1=0,s0=1时,out=d1; 当s1=1,s0=0时,out=d2; 当s1=1,s0=1时,out=d3。 逻辑表达式组: Out=d(s1s2) 实现的逻辑功能就是典型的4选1数据选择器 2.请对下列Verilog HDL模块进行仿真和分析,用时序波图形或流程框图描述其行为,并概括地说明其逻辑功能。如果要使输出fd_out的占空比为50%,需要对该模块做什么修改? module exe2n(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) begin if (!clr) cnt <= 4'h0000; else begin cnt <= cnt - 1; if (cnt==0) begin fd_out <= 1; cnt <= d; end else fd_out <= 0; end end endmodule (1)将程序进行功能仿真,仿真波形图如图所示: 由图知,该程序实现的是可变模的减法计数器,输出的是每当到达设定模值就输出1,相当于对设定模进行检测。 (2)若要使输出fd_out占空比为50%,则可以规定模值d=1,如下图 3. 请对下列Verilog HDL模块进行仿真和分析,写出对应的逻辑表达式(组)或真值表,并概括地说明其逻辑功能。 module exe3n(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) begin case (func_sel) 3'b000: op_result <= op_a + op_b; 3'b001: op_result <= op_a - op_b; 3'b010: op_result <= op_a * op_b; 3'b011: op_result <= op_a / op_b; 3'b100: op_result <= op_a & op_b; 3'b101: op_result <= op_a | op_b; 3'b110: op_result <= op_a ^ op_b; 3'b111: op_result <= op_a ~^ op_b; endcase end endmodule 将程序进行功能仿真,功能仿真波形如图: 当fun_sel=000时,op_result = op_a + op_b 当fun_sel=001时,op_result = op_a - op_b; 当fun_sel=010时,op_result = op_a * op_b; 当fun_sel=011时,op_result = op_a / op_b; 当fun_sel=100时,op_result = op_a & op_b; 当fun_sel=101时,op_result = op_a | op_b; 当fun_sel=110时 op_result = op_a ^ op_b; 当fun_sel=111时 op_result = op_a ~^ op_b; 由此可知,该段程

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档