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

  1. 1、本文档共30页,可阅读全部内容。
  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 WideAnd0s1s0d0WideAnd1d1WideOr0WideAnd2outd2WideAnd3d3 将程序进行功能仿真,功能仿真图如下所示: 时s1=0,s0=0)当1(. (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%,需要对该模块做什么修改? 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 + 将程序进行功能仿真,功能仿真波形如图: (1) 当fun_sel=000时,op_result = op_a

文档评论(0)

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

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

1亿VIP精品文档

相关文档