设计计数器设计5位数

计数器设计(一) - 简书
计数器设计(一)
一个计数器通常是由一组触发器构成,该组触发器按照预先给定的顺序改变其状态,如果所有触发器的状态改变是在同一时钟脉冲的同一时钟沿上发送的,则称该计数器为同步计数器(Synchronous Counter),如果计数器中的每个触发器的时钟部分或全部不同,则称该计数器为异步计数器(Asynchronous Counter)。
虽然计数器在形式上是简单的,但计数器也是很有内涵的。
计数器设计的三要素
1.初始值是多少每轮计数的初始值,按照习惯一般可以从0开始计数有些情况下需要装载值然后做减法计数
2.加1条件是什么valid信号==1,有效时计数,一般而言,这种+1计数条件会放在条件判断的低优先级上无valid使能计数的设计中,默认为按时钟节拍计数,此时相当于作为计时器用
3.结束条件结束本轮计数的条件
一般与累加计数的条件相关,如
valid==1 && cnt==7如果是循环计数,则记住要恢复初始值计数结束,清零条件一般处于计数器控制的高优先级级别上
用于统计计数的,一般用自增计数器用于不定时计数的,一般用自减计数器
常见计数器
二进制计数器
1.以下是一个不带中止条件的同步二进制加法计数器的结构框图可以根据结构框图直接对计数器进行结构建模
untitled.png
同步二进制计数器两种风格下的写法
07:59:24屏幕截图.png
计数器进位输出: cout = (cnt_q == 2**N -1) ? 1'b1 : 1'b0;需使用组合逻辑直接得出计数器进位有效信号;如果是寄存输出,则无法级联且正确按序计数。
2.异步二进制计数器的简要介绍以及实际使用中的缺陷Ripple Counter
untitled2.png
这种计数器用前级的输出作为后级的时钟,由触发器的时钟到输出延时Tco可知,到达每个计数器的时钟信号并不是同时的;假设此时刻Q3Q2Q1Q0=0111, 当下一个CP脉冲到来时,从整体上看,这四个寄存器的输出会是0111--&0110--&0100--&0000--&1000其中每次改变的时间间隔都是Tco,也就是从当前状态输出0111,到最终输出稳定为1000,中间有4个Tco的时间输出是不稳定的;如果作为计数器来用,这么长时间的虚假数值会造成严重错误,特别是当计数值作为控制逻辑的判断条件时,可能在同一拍,不同的控制逻辑会收到了不同的计数值,造成系统挂死。
3.同步二进制计数器位数变多后的进位链问题(以加法计数器为例)二进制同步加法计数器状态方程的一般形式
untitled3.png
考虑现在有一个20位计数器,那么FF间实际最长组合路径为Q19(n+1) = Q19n ^ (Q18n & Q17n & ... & Q0n)形式上虽然是2级组合逻辑:用与1个19输入的与门,将 FF18~FF0 的触发器的输出相与,1个2输入的异或门,将与门的输出和FF19的输出异或,接FF19的输入端,就可以实现;但实际FPGA中,需要3级4输入LUT,并且如果这样的逻辑很多,则可能决定次态输入的LE无法和寄存计数值的FF单元排在同一列上,而跨LAB的线延迟明显。假设每个LUT延时0.7ns,线延迟0.7ns+,在FPGA中,Fmax =260MHz左右, 这个速度不能算高。
一般而言,在运算电路中插入流水线寄存器,以消除关键路径,控制逻辑中关键路径,则设法用寄存器切割组合逻辑链,优化时序性能,但是这里是计数器,所以流水线是不能恰当解决问题的。(思考脸)
4.用双口ROM设计实现一个20bit二进制加法高速计数器FPGA中可用片内RAM资源实现的二进制高速计数器,只要管理好地址与地址空间中所存数据之间的对应关系,也就是现态与次态间的对应关系,即可自由的实现二进制码,格雷码,BCD码高速计数器。
在ROM的地址0~1023依次存储{0MSB,拼接10bit数据1~1023} ,{1MSB,拼接10bit数据0}这1024个单元的11bit数;DOUTA[9:0}接地址ADDRA[9:0],cnt[9:0]从输出口DOUTA[9:0]寄存输出,cnt[9:0]可以循环输出0~1023;DOUTB[9:0]接地址ADDRB[9:0],cnt[19:10]从输出口DOUTB[9:0]直接引出(非寄存输出),DOUTA[10]作为端口B按ADDRB读取数据的使能信号;从而得到计数器输出cnt[19:0];使用了11bit数据位宽,深度1024的片内双口ROM,延时小且固定,实现了不构成系统运行速度瓶颈的高速计数器。
5.在对计数顺序没有要求的场合,可以用LFSR替代传统的二进制计数器,作为高速计数器,对提高性能起关键作用。LFSR的介绍见《序列产生电路》文章
Gray码计数器
在异步FIFO设计中,常用格雷码对顺序+1增长的地址指针进行编码,然后传递到异步时钟域中进行比较。
1.Gray code counter style #1设计思路:按照原始的思路,可以先构建一个二进制计数器,再对二进制的输出做Binary码到Gray码的变换,这样输出就是周期增长的格雷码了,直接法如下图
untitled4.png
但是这种组合输出是有毛刺的,而计数器模块的后级模块常常是对毛刺敏感的,特别是将输出传到异步时钟域,所以计数器输出不能从组合逻辑直接得到。
Gray code counter style #2于是改进计数器结构,环路法实现闭结点寄存输出如下图
untitled5.png
有了上面的结构框图,按照结构化设计的思路,代码就不难写了;以4bit格雷码/二进制码为例
将格雷码转换为二进制码(G--&B)
方法是:B3 = G3B2 = G3 ^ G2B1 = B2 ^ G1 =
G3 ^ G2 ^ G1B0 = B1 ^ G0 =
G3 ^ G2 ^ G1 ^ G0
考虑到逻辑运算公式 A ^ 0 = A
;所以上面的转换等同下面表达式
untitled6.png
untitled7.png
将二进制结果转换为格雷码(B--&G) 方法是G3 = B3 ^ 0
= B3G2 = B3 ^ B2G1 = B2 ^ B1G0 = B1 ^ B0
也就是 G = (B&&1) ^ B
untitled8.png
Gray code counter style #2
untitled9.png
其中inc在作为计数器低位进位输入的同时,也作为计数器的计数使能,可控制其是否运行/翻转
3.Gray code counter style #3
untitled10.png
Style #2中G--&B和B--&G组合逻辑与半加器,共同消耗了一个时钟周期,(Reg2Reg, 212MHz);Style #3中只有B--&G Comb 与半加器一起,消耗一个时钟周期,所以Style #3的格雷码计数器会比Style #2快,(Reg2Reg, 386MHz)。
Gray code counter style #3
RTL描述(Recommend)
untitled11.png
4.Gray code counter style #4还可以用状态机法建模格雷码计数器,简单的方法是按照格雷码编码次序分别作为状态机状态编码,以output encoding coding style实现一个Moore机,状态机输出直接从Present State 寄存器输出端引出来。
环形计数器
环形计数器又称移位寄存器型计数器,其输出就好像是将一个触发器的输出在时钟脉冲作用下不断循环移位;如1000--&0100--&0010--&0001--&1000--&......数码管动态扫描就用到了环形计数器作为数码管的位选信号输出;下面给出共阳接法8个7段数码管位选产生的环形计数器,低电平选通;此移位寄存器使用了反馈接法,因而这个电路(的输出模式)是可以自恢复的。
untitled12.png
它的输出值按时钟节拍变化规律是:--&--&--&--&--&--&--&--&--&...
Johnson计数器
环型计数器(Ring Counter)的一个特例是扭环型计数器(Twisted-ring Counter)而(Twisted-ring Counter又称Johnson Counter, 其计数行为是:若当前计数器最高位为1, 则执行最低位补0的左移操作,若当前计数器最高位为0, 则执行最低位补1的左移操作。如
000--&001--&011--&111--&110--&100--&000--&001 ...
untitled13.png
注意,以3bit移位寄存器实现的Johnson计数器为例,这个计数器按上面RTL描述的接法,是不可自恢复的;若某时刻,计数器值为010,那么下一拍,会跳变为101;而101在下一时钟有效沿后,又会跳变为010,这样就在无效态中循环了;思考解决方法。
定义:所谓M进制计数器,是指共有M个状态,计数M次产生一个进位信号的计数器,也称为模M计数器(Modulo-M Counter).1.Modulo-M计数器的计数范围是 0 到M-1,之后返回 0 重新开始计数。简单的模M计数可使用下图注释部分的习惯写法
untitled14.png
模M(加法)计数器是一种非常常见的数字电路基本结构,经常作为一些控制器设计中必不可少的基本部分。
2.WatchDog Timer
看门狗定时器(WDT,Watch Dog Timer)是一种常见的电路,它实际上是一个计数/计时器。在初始状态时,看门狗电路首先装载一个预置数;当状态机或者程序开始运行后,看门狗开始倒计数;如果状态机或程序运行正常,每隔一段时间应该发出指令或信号让看门狗重新装载一个初始值,并(再次)开始倒计数;如果看门狗减到 0 就认为程序或状态机没有正常工作,需要强制整个系统复位。
(1)下面计数器电路描述就是一个看门狗电路 cnt &= 0 作为看门复位状态, load信号有效则是状态机或软件给出的喂狗动作。
module counter_wdt #(parameter N = 8) (
logic clk,
logic rst_n,
logic load,
logic up_down,
logic [N-1:0] preset,
output logic [N-1:0] cnt_q
logic [N-1:0]
always_ff @(posedge clk or negedge rst_n) begin
if(!rst_n)
else if(load)
else if(up_down)
cnt &= cnt+1'b1;
cnt &= cnt-1'b1;
assign cnt_q =
(2)WDT计数器的另一种写法控制向量与数据向量正交分离的设计原则,简化设计思路。
untitled15.png
(3)设计一个二进制模M计数器
该计数器含有:异步清零端,同步装载,加减计数控制;其中计数的模(/中止位) 按参数化设计。
module counter_fsmd #(parameter N = 4, M = 10)(
logic rst_n,
logic clk,
logic [N-1:0] preset,
logic [1:0] func, //controls the function
output logic [N-1:0] q
always_ff @(posedge clk or negedge rst_n) begin
if(!rst_n)
case(func)
2'b00: q &=
2'b01: if(q == (M-1)) q &= 0;
q &= q + 1;
2'b10: if(q == 0) q &= M - 1;
q &= q - 1;
2'b11: q &=
显然,这里的N和M是相关的,可以在预处理时,执行(log2(M)取整
+1) 就可自动得到相关的N;虽然如此,但还是不建议在RTL描述的module里写出不可综合代码,即使在综合时会被预处理掉,看起来也有些混乱;如有必要,可以专门写一个预处理文件,然后用`include嵌入其中。
BCD码计数器
1.区分BCD码(模60)计数器 与(二进制)模60计数器二进制码计数器和BCD码计数器是不同的,例如,二进制模60计数器在寄存器各位的输出为5'b111011 表示计数到59,而BCD码模60计数器在寄存器的输出为8'b 表示计数到59;
模10以下的二进制码计数器和BCD码计数器的输出相同,对十进制数0~9,以BCD码和二进制码对它们编码,得出的值在形式上一致。
BCD码计数器是计数值以BCD码表记的计数器,BCD码计数器的概念层次与Binary(二进制)码计数器平行
2.设计一个BCD码模60计数器计数器的值以BCD码值,从0~59依次变化8421BCD码D(59) 对应的编码为8'h59
利用60进制BCD码计数器,方便数字钟里的秒数分数译码显示;如00:45:59,分别为模60 BCD码计数器--&模60 BCD码计数器--&模24 BCD码计数器的级联,其中秒数计数器的计数使能cin接1;产生的BCD码可以很方便的译码显示在数码管或12864液晶上。
module counter_bcd (
logic clk,
logic rst_n,
logic cin,
output logic [7:0] bcd,
output logic cout
logic [3:0] low,
always_ff @(posedge clk or negedge rst_n) begin
if(!rst_n)
{high, low} &= 8'b0;
else if(cin==1'b1) begin
if(low==4'd9)
// 低4位计数到9 下一拍低4位清0
if(high==4'd5) // 进一步的,如果同时满足高四位为5,则所有位清零
{high, low} &= 8'b0;
{high, low} &= {high+1'b1, 4'b0};
{high, low} &= {high, low+1'b1};
assign bcd
= {high,low};
assign cout = (cin==1'b1 && {high,low}==8'h59) ? 1'b1 : 1'b0;
//error cout
always_ff @(posedge clk or negedge rst_n) begin
if(!rst_n)
cout &= 1'b0;
else if(cin==1'b1 && {high,low}==8'h59)
cout &= 1'b1;
cout &= 1'b0;
3.BCD码模60计数器的几个注意点(1)上面的模60和bcd码的位宽8是相关的,这意味着例化BCD码计数模块时,可以只提供计数的模,而bcd码的位宽可以预处理得出。
(2)计数器进位输入cin,同时也扮演了计数器计数使能的角色,为1时才会计数+1,低电平维持计数值,停止计数。
计数使能避免了系统空闲态中计数器仍然空转,降低了动态功耗;
有了进位输入和进位输出端口,这样才可以级联计数器,方便层次化和结构化复用;
在不关心或没必要考虑/使用级联时,可无cin,此时可以用专门的计数使能cnt_en控制计数器计数;如果计数器设计时,没有计数使能或计数停止条件,则无论系统当前需不需要计数,它都会不停的翻转,耗电;
如果计数器是用作某个完整设计的子模块,则最好要有cin或cnt_en计数使能信号,这样计数器模块才是可控(受控计数)的。
(3)关于上方代码//error注释部分说明一般可级联的计数器需要有超前进位输出(Cout),这样接到高位计数器模块的计数允许端(Cin),两者组合起来的计数电路整体上会有更宽的计数范围;
所谓超前进位输出,就是计数器的所有位为1时,同时输出进位信号(用组合逻辑),不能延迟一拍/下一拍输出进位;对应高位计数器的Cin==1时,下一拍计数值才会+1,而高位计数器输出1的同一拍,低位计数器刚好为全0,这就实现了无缝连接;
而注释部分的代码描述行为是在{high,low}==8'h59的下一拍才会输出一个高脉冲,如果例化多个模块,直接级联后,输出的值是错位的。
(4)多个计数器模块级联时的进位链问题设有5个上述模60 BCD码计数器模块被例化并级联,由assign cout = (cin==1'b1 && {high,low}==8'h59) ? 1'b1 : 1'b0;
这个组合逻辑层层递归展开来看,cin不断的被得出前级cout的与门+MUX结构往下迭代,那么从最低位的计数模块进位cin信号到最高模块cout输出,这个路径上级联的组合逻辑,叠加的延时至少有5个与门5个MUX那么长,考虑极端情况,如果这个叠加的延时超过了同步计数器运行的时钟周期,那么后级计数器模块实际上无法正确得到前级送来的进位信号,所以就无法继续正确计数了。
4.BCD码计数器第二种实现方法从结构和组合上入手:先构建一个普通的二进制计数器 再接上一个二进制码译码转换BCD码的组合电路;这种搭积木的设计思路比较直观。
下面的BCD码计数器,使用二进制加法计数器计数值译码为BCD码输出;进位输出在计数的第10~15次时维持,从而实现了一个计数范围为0~15的模16 BCD码计数器。
assign e = bin[3] & ~bin[1];
assign bcd[3] = e & ~bin[2];
assign bcd[2] = ~e & bin[2];
assign bcd[1] = e & bin[2] | ~bin[3] & bin[1];
assign bcd[0] = bin[0];
assign cout = bin[3] & (bin[2] | bin[1]);
由毛刺造成的暂态由于人的视觉分辨时间/数字发光管的响应时间,看不出来,故数字钟的BCD码计数器,对毛刺不敏感;所以这里组合逻辑译码器(decoder)直接输出计数器计数值可以直接用。
位数比较少的BCD码可以使用组合逻辑转换,但这种方法的局限性比较大
相关问题: 用状态机实现二进制码转BCD码的功能
5.BCD码计数器第三种实现方法由带进位输入输出的模m~10二进制同步计数器拼接举个简单的例子,直接级联3个二进制模10计数器,可以实现BCD码 0~D(999) 的计数(最高位进位输出信号不计入)
合理的选用上述方法,构造BCD码X进制计数器。
IP核高速计数器
1.FPGA数字逻辑设计三法原理图设计法,不推荐HDL 描述建模的设计方式, 灵活 常用IP核搭建方法, 合适用就用
IP核调用,节约建模时间;由于功能已被验证,又省去了测试的过程;原型可复用;在合适与熟悉的基础上能用为什么不用呢
2.LPM CounterLPM: Library of Parameterized Module
参数化模型IP核库
LPM计数器IP核的接口与参数介绍
untitled16.png
untitled17.png
3.图形化设置调用IP核简介(1)打开MegaWizard
选中LPM_COUNTERoutput file name 设置为:/home/shus/svprj/counter_ip/prj/ip/counter.v其中ip目录是新建的 这样生成的IP的相关文件全在此目录下对输出生成的模型文件名命名后最好带.v 如这里的counter.v
(2)本处以LPM_COUNTER IP生成一个4bit, up only,Modulus 10计数器,含进位输入与进位输出,并设置异步清零
注意到图形界面的结构框图上
同步输入信号在左 异步信号输入信号在下注意到Quartus里IP的使能信号和异步清零信号(aclr)一般是高电平有效的
(3)自动生成的文件Verilog HDL IP的顶层文件(&function name&.v),对于Verilog HDL实现,该原型文件必选生成,参数设置也记录在其中;
Quartus ii符号文件(&function name&.bsf),可以在原理图设计中使用,保持默认(不生成);
例化模板文件(&function name&_inst.v),设计中需要例化时可以直接复制此模板,一般选择生成;
综合和面积和时序估计网表(&function name&_syn.v),保持默认(不生成);
Verilog HDL黑盒文件(&function name&_bb.v),可以给第三方综合工具使用,如果不做后仿,可保持默认;
这里勾选 counter.v 与 counter_inst.v
如果是第一次调用IP核 Quartus会弹出对话框提示是否将此IP核添加到当前工程中且以后也默认自动添加MegaWizard生成的IP核文件到工程中 ;选择是。
(4)写一个顶层文件counter_ip.sv, 从counter_inst.v中找到例化模板复制到顶层文件中 简单修改即可例化使用。
untitled18.png
手工设计计数器
1.带自增自减控制的模10计数器设计一个模10计数器;当X=1时,加法计数;当X=0时减法计数。参考RTL描述
module counter_fsmd #(parameter N = 4, M = 10)(
logic rst_n,
logic clk,
logic up_down,
output logic [N-1:0] q
always_ff @(posedge clk or negedge rst_n) begin
if(!rst_n)
else if(up_down)
if(q == (M-1)) q &= 0;
q &= q + 1;
else if(~up_down)
if(q == 0) q &= M - 1;
q &= q - 1;
上述行为风格VerilogHDL描述该功能电路 对应的结构示意图这是我脑补的,不一定同于综合软件给出的结果
untitled19.png
2.手工设计一个模10计数器;当M=1时,加法计数;当M=0时减法计数(当计数满量时,输出Z=1,其余状态Z=0)
同步时序电路的一般性设计流程1.由给定的功能/文字描述
做STG2.进行状态编码分配,并试图进行状态化简3.得到状态迁移表4.得到状态激励表;对于D触发器实现,状态激励表就是状态迁移表,因为Q(n+1)=D5.得到激励方程,输出方程6.检查自启动,若不能自恢复,改变某一级FF的激励函数再检查.7.画电路图/时序(波形)图说明设计功能
(1)STG根据问题描述画状态转移图
untitled20.png
(2)状态编码4个触发器共16种状态,此处知识用其中10种,其他6种是invalid态/多余态
untitled21.png
(3)得到状态迁移表对D触发器,状态转移表同于状态激励表由这个激励表(真值表)化简可以得到激励方程与输出方程
激励方程指的是各触发器输入端的控制方程,如果使用D触发器,那么就是驱动D信号的激励产生逻辑,如果使用T触发器,那么就是产生驱动T信号的逻辑,输出方程指的是产生Z信号的逻辑表达式
使用D触发器时,可由状态转移表,将现态编码作为输入,每个FF的次态作为输出,看做真值表,并分别作卡诺图
(4)检查自启动如果电路的全部非工作状态都能经过若干个状态转换后,自动进入工作循环,即不存在孤立的状态(环),称这样的时序电路能自启动。只要系统对于进入有效循环的时间没有严格的限制,它仍然是合理的。
(5)得到最终的激励方程,输出方程,完整的状态转移图这里以TFF为例,激励与输出如下
untitled23.png
完整的State Transition Graph
untitled24.png
3.关于结构与流程框图在初学HDL数字设计,进行结构建模风格HDL描述前,可画个结构图,心里有数,思路清晰,方便按图索骥,结构化描述模型;在写了HDL代码后,如果功能不同于预期或有错,可以心里想象,或画个结构图,看看自己写的代码能否对应真实可行电路;对于状态机,在做RTL描述前,可以手工绘制状态转移图,在综合后检查综合报告里的状态转移图是不是符合自己预期。手工设计直指本质,有助于加深对数字逻辑电路结构的理解,有其意义。
书写风格补注
组合与时序分开的写法 这种风格是比较方便调试的1.二进制Modulo-M加法计数器中的块,下面是组合与Reg不分的描述
always_ff @(posedge clk or negedge rst_n) begin
if(!rst_n)
cnt &= '0;
else if (cnt == M-1 )
cnt &= '0;
cnt &= cnt + 1'b1;
2.组合和Reg分开的描述风格
这里约定:1.若always块中为cnt 与cnt_d 对 则寄存器下一时刻间隔输出cnt_d,寄存器当前时刻(间隔)输出cnt ;2.若always块中为cnt_r 与cnt_d 对则寄存器下一拍输出cnt_d,寄存器当前输出cnt_r ;3.若always块中为cnt_r 与cnt 对则寄存器输入端接cnt,寄存器输出端接cnt_r;4.若always块中为cnt 与cnt_n 对则寄存器次态cnt_n,寄存器现态cnt;
always_ff @(posedge clk or negedge rst_n) begin
if(!rst_n)
cnt_r &= '0;
cnt_r &= cnt_d;
always_comb begin
if(cnt_r == M-1)
cnt_d = '0;
cnt_d = cnt_r + 1'b1;
assign cnt = cnt_r;
// max_tick = (cnt_r == M-1) ? 1'b1 : 1'b0;
//这里的always_comb块也可直接替代为用assign数据流建模
//assign cnt_d = (cnt_r == M-1) ? 0 : cnt +1'b1;
对于这里简单计数功能的实现,可以用第一种风格;对于比较方便用结构化模型描述的功能,如上述的格雷码计数器,最好用第二种。
回想一下状态机的2,3段写法中,FSM的描述分解成:状态转移逻辑(组合/译码电路) 状态保存寄存器 状态输出逻辑就是时序组合分开写的,方便理解与调试与综合优化。
单纯的计数器是个挺简单的电路,简单的查看波形就能验证。1.简单的testbench 测试模60 BCD码计数器
`timescale 1ns/1ps
localparam PERIOD = 50; //clk=20MHz
module counter_bcd_tb #(parameter N=8)();
// source define
logic rst_n;
// probe define
logic [N-1:0]
logic [N-1:0]
// instantiate dut
counter_bcd
counter_bcd_inst0 (
.rst_n(rst_n),
.cout (cout )
// generate clock
initial clk = 1;
always #(PERIOD/2) clk = ~
// generate reset
initial begin
rst_n = 1;
rst_n = 0;
#(PERIOD*5) rst_n = 1;
// initialize
initial begin
// load stimulus, testcase
initial begin
#(PERIOD*10 +1);
#(PERIOD*400);
// suspend simulation
上面注释里的分类是一个testbench中一般构成的几大要素。
2.计数器测试结果波形图(1)模60 BCD码计数器8421BCD码编码,对应表示的BCD码为D(59)
untitled25.png
(2)IP核模10计数器
untitled26.png
备注:(二)针对具体设计/应用要求,介绍计数器功能设计技巧与思路(三)高速计数器的几种类型,设计性能提升与比较节拍计数器与纯粹的计时计数器设计区别与优化
《数字逻辑基础》 陈光梦《CMOS VLSI Design A Circuits and Systems Perspective》Neil H. E. Weste, David Money Harris. 4th Edition《Clock Domain Crossing (CDC) Design & Verification Techniques Using SystemVerilog》
Clifford E. Cummings《FPGA Prototyping by Verilog Examples》Pong P. Chu《通信IC设计》李庆华《基于FPGA的数字信号处理》 高亚军《Altera系列FPGA芯片IP核详解》刘东华
日凿一窍,七日而死。5分钟内设计师响应
十年专注设计领域
费用最多可节约50%
相关“计数器”102 张图片
相关素材本专辑含2131张图查看444015次5060708090100每页显示已成功添加收藏红动创办于2005年,老品牌值得信赖
在线客服 :
客服热线 :400-5位计数器和4位计数器串联成多少位计数器
5位计数器和4位计数器串联成多少位计数器
09-09-27 &匿名提问
啥叫正负极啊?高压线要么三相同步输送要么直流输送,上面的保护地线显然鸟没那么大的脚!所以它不可能同事接触到火线跟零线!鸟不被电死,主要是它两脚之间距离比较近,电网输电线路从两脚间形成的跨步电压非常小,基本无压降,所以不会死,而人在上面 ,一步的距离其形成的跨步电压比较大,会被电到的!跟正负极,火线零线基本不怎么挨着,不能往那个上面靠!
请登录后再发表评论!}

我要回帖

更多关于 四位数显计数器电路 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信