HDL课件4.pptVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HDL课件4

6.6 用verilog HDL 描述时序逻辑电路 6.6.1 移位寄存器的verilog 建模 移位由串行输入和3个触发器的输出拼接起来进行描述:Q={Dsl,Q[3:1} 左移:Dsl传给Q[3], Q[3:1]传给Q[2:0] module shift74x194 (S1,S0,D,Dsl,Q,CP,CR) input S1,S0; input Dsl,Dsr; input CP,CR; input [3:0] D; output [3:0] Q; reg [3:0] Q; always @(posedge CP or negedge CR) if (~CR) Q=4’b0000; else case ({S1,S0}) 2’b00:Q=Q; 2’b01:Q={Q[2:0],Dsr};//shift right 2’b10:Q={Dsl,Q[3:1]};//shift left 2’b11:Q=D;//parallel load input endcase endmodule 6.6.2 计数器的verilog建模 74ls161 异步清零,同步置数 module counter74x161(CEP,CET,PE,D,CP,CR,Q,TC) input CEP,CET,PE,CP,CR); input [3:0] D; output TC; reg [3:0] Q; wrie CE; assign CE=CEPCET; assign TC=CET (Q==4’b1111) always @(posedge CP or negedge CR) if (~CR) Q=4’b0000; else if (~PE) Q=D; else if (~CE) Q=Q; else Q=Q+1’b1; endmodule 异步二进制计数器 module D_FF(Q,D,CP,Rd); output Q; input D,CP,Rd; reg Q; always @(negedge CP or negedge Rd) if (~Rd) Q=1’b0; else Q=D; endmodule module ripplecounter (Q0,Q1,Q2,Q3,CP,CR) Output Q0,Q1,Q2,Q3; Input CP,CR; D_FF FF0 (Q0,~Q0,CP,~CR); D_FF FF1 (Q1,~Q1,Q0,~CR); D_FF FF2 (Q2,~Q2,Q1,~CR); D_FF FF3 (Q3,~Q3,Q2,~CR); endmodule 3.非二进制计数器 module m10_counter(CE,CP,CR,Q) input CE,CP,CR; output [3:0] Q; reg [3:0] Q; always @(posedge CP or negedge CR) if (~CR) Q=4’b0000; else if (CE) begin if (Q=4’b1001) Q=4’b0000; else Q=Q+1’b1; end else Q=Q; enmodule 6.6.3 状态图的verilog建模 最常用的语句:always 和 case module mealy_sequence_detector(A,CP,CR,Y); input A, CP, CR; output Y; reg Y; reg[1:0] current_state, next_state; Parameter S0=2’b00,S1=22’b01,S2=2’b11; Always @(negedge CP or negedge CR) begin if (~CR) current_state=S0; else current_state=next_state; end always @(current_state or A) begin case(current_state) S0:begin Y=0;next_state=(A==1)? S1:S0;end S1:begin Y=0;next_state=(A==1)? S1:S0;end S2: if (A==1) begin Y=0; next_state =S2; end else begin Y=1; next_state =S0; end dufault:begin Y=0; next_state =S0;end endcase end

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档