我想用74LS 161做一个34进制计数器
但是问了一下AI,他给我两个代码一个是161的管脚功能图,一个是正式的连接图
如何能将这两个代码同时运行,并且单独运行的时候代码存在问题,能不能修改一下?
module LS161( input CP, CR, LD, CTP, CTT, input [lbk]3:0[rbk] D, output reg [lbk]3:0[rbk] Q, output CO);assign CO = (Q == 4'b1111) & CTT;
always @(posedge CP or negedge CR) begin if (!CR) Q <= 4'b0000; // 异步清零 else if (!LD) Q <= D; // 同步置数 else if (CTP & CTT) Q <= Q + 1; // 正常计数endendmodule
module count (cp,cr,q);input cp,cr;output [lbk]7:0[rbk] q;
wire c; //异步清零信号wire co; //低位进位
LS161 low( .CP(cp), .CR(cr&c), .CTP(1'b1), .CTT(1'b1), .Q(q[lbk]3:0[rbk]), .CO(co)); //低位161
LS161 high( .CP(cp), .CR(cr&c), .CTT(co), .CTP(co), .Q(q[lbk]7:4[rbk]), .CO()); //高位161
assign c=~((q[lbk]7:4==4'b0010[rbk])&&(q[lbk]3:0[rbk]==4'b0001));//清零条件
endmodule //count
但是问了一下AI,他给我两个代码一个是161的管脚功能图,一个是正式的连接图
如何能将这两个代码同时运行,并且单独运行的时候代码存在问题,能不能修改一下?
module LS161( input CP, CR, LD, CTP, CTT, input [lbk]3:0[rbk] D, output reg [lbk]3:0[rbk] Q, output CO);assign CO = (Q == 4'b1111) & CTT;
always @(posedge CP or negedge CR) begin if (!CR) Q <= 4'b0000; // 异步清零 else if (!LD) Q <= D; // 同步置数 else if (CTP & CTT) Q <= Q + 1; // 正常计数endendmodule
module count (cp,cr,q);input cp,cr;output [lbk]7:0[rbk] q;
wire c; //异步清零信号wire co; //低位进位
LS161 low( .CP(cp), .CR(cr&c), .CTP(1'b1), .CTT(1'b1), .Q(q[lbk]3:0[rbk]), .CO(co)); //低位161
LS161 high( .CP(cp), .CR(cr&c), .CTT(co), .CTP(co), .Q(q[lbk]7:4[rbk]), .CO()); //高位161
assign c=~((q[lbk]7:4==4'b0010[rbk])&&(q[lbk]3:0[rbk]==4'b0001));//清零条件
endmodule //count
