用Verilog写一个74LS160

5-10 Verilog设计一个功能类似74ls160的计数器。

1)解题思路

设计一个74ls160,需要知道它的功能表,以及原理图

 

 

(2)核心模块代码

module fidv1 (rd,clk,et,load,datain,dataout,cout,ep);

input rd,et,load,clk,ep;

input [3:0] datain;

output [3:0] dataout ;

output cout;

reg cout;

reg [3:0] q1;

wire rd;

always @ (posedge clk or negedge rd)

if (rd==0) begin q1<=4'd0; end//rd=0时清零

else begin

if(clk==1&load==0) q1=datain;

else if(clk==1&load==1)

begin

if(ep==1&et==1&q1<4'd10) //开始计数

begin q1=q1+1;cout=0;

end

else if((ep&et)==0) begin q1=q1;cout=0;end//保持不变

else if(q1==4'd10) cout=1;//进位输出

end

end

assign dataout =q1;

endmodule

(3)测试模块代码

`timescale 1 ps/ 1 ps

module fidv1_ll();

// constants                                           

// general purpose registers

reg eachvec;

// test vector input registers

reg clk;

reg [3:0] datain;

reg ep;

reg et;

reg load;

reg rd;

// wires                                               

wire cout;

wire [3:0]  dataout;

 

// assign statements (if any)                          

fidv1 i1 (

// port map - connection between master ports and signals/registers   

.clk(clk),

.cout(cout),

.datain(datain),

.dataout(dataout),

.ep(ep),

.et(et),

.load(load),

.rd(rd)

);

always   #2 clk=~clk;

initial                                                

begin                                                  

#0 clk=0;

#0 rd=1;

#0 datain=4'd2;

#2 load=0;

#2 ep=1;

#0 et=1;

#12 load=1;

#16 ep=0;

#0 et=0;

#8 rd=0;

#2 rd=1;

#6 datain=4'd3;

#5 load=0;

                                       

$display("dataout=%d,datain=%d",dataout,datain);  

#2 $stop;                     

end                                                    

                                          

endmodule

(4)RTL View的网表图

 

 

转载于:https://www.cnblogs.com/0001lizhubo/p/10846885.html

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值