复杂电路编程题.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 12 1、行为描述的74LS74。 module dff_7474(d,clk,clrn,prn,q,qn);//dff为触发器 input d,clk,clrn,prn; output q,qn; reg q; assign qn=!q; always @(posedge clk or negedge clrn or negedge prn) begin if(clrn= =0) q<=0;//清0 elseif(prn= =0) q<=1; //置1 else q<=d; //置数 end endmodule 2、比较x、y的大小,位数由参数决定。 Module compare_n(x,y,xgy,xsy,xey) ; parameter width = 8; input[width-1:0] x , y ; output xgy,xsy,xey; reg xgy,xsy,xey; always @(x or y) begin if(x= = y) xey=1; else xey=0; if(x>y) begin xgy=1;xsy=0;end else begin xgy=0;xsy=1;end end endmodule 3、多路器(根据地址信号在多路输入中选择一路输出) module mux_8(addr, in1,in2,in3,in4,in5,in6,in7,in8,mout,ncs) ; parameter width = 8; input [2:0] addr ; input ncs; input[width-1:0] in1,in2,in3,in4,in5,in6,in7,in8 ; output [width-1:0] mout; reg [width-1:0] mout; always @(addr or in1 or in2 or in3 or in4 or in5 or in6 or in7 or in8 or ncs) begin if(!ncs) //即if (ncs= = 0) case(addr) 3’b000:mout=in1; 3’b001:mout=in2; 3’b010:mout=in3; 3’b011:mout=in4; 3’b100:mout=in5; 3’b101:mout=in6; 3’b110:mout=in7; 3’b111:mout=in8; endcase else mout=0; end endmodule 4、参数化的奇偶校验生成器 module parity_g(data_in,odd_par,even_par); parameter n=4; input [n-1:0] data_in; output odd_par,even_par; assign odd_par=^~data_in; assign even_par=~odd_par; endmodule 5、带有异步清零端的同步4位二进制加法计数器 module ncounter(rst, clk, q ); input rst, clk; output [3:0] q; reg [3:0] q; always @( posedge clk or negedge rst) if (!rst) q<=0; else if (q==15) q<=0; else q<=q+1; endmodule 6、设计一个4位加1/减1双向同步计数器,其计数输入时钟为clk,输出为q[3:0](以十进制计数)。要求有1个低电平有效的使能端能ncs,1个低电平有效的清0端nrst,1个低电平有效的同步置数端load。加1/减1控制信号s,进位/借位信号为c。 module udcnt(clk,nrst,d,q,ncs,s,c,load); input clk,nrst,ncs,s,load; input [3:0]d; output c; output [3:0]q; reg c; reg [3:0]q; always@(posedge clk) if(!nrst) begin q<=0; end else if

文档评论(0)

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

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

1亿VIP精品文档

相关文档