- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)