IC基础知识11-时序逻辑电路的设计与应用实例解析

FPGA/IC秋招面试题 1(解析版) fpag面试选择题,数字IC面试选择题 阅读详情

1. 时序逻辑电路:数字世界的“记忆”与“节奏”

大家好,我是老张,在芯片设计这行摸爬滚打了十几年,从最基础的与非门画起,到后来参与设计复杂的片上系统。今天想和大家聊聊数字电路里一个特别核心,也特别有意思的部分——时序逻辑电路。很多刚入门的朋友一听到“时序”、“触发器”、“状态机”这些词就头大,觉得抽象难懂。其实,你可以把它想象成我们大脑的短期记忆和生物钟的结合体。

组合逻辑电路就像条件反射:你拍一下手(输入),我立刻跳起来(输出),反应很快,但“过目就忘”,没有记忆。而时序逻辑电路则不同,它自带“记忆”功能。它的输出不仅取决于当前的输入,还取决于电路“过去”的状态。这就好比一个智能门锁,你输入密码“1234”(当前输入),它能不能开门,还得看你之前有没有按过“#”键启动输入模式(过去的状态)。这个“记忆”能力,是靠电路里的存储元件(主要是各种触发器)来实现的。更关键的是,时序电路的一切动作都受一个统一的“心跳”——时钟信号的控制,所有状态变化都发生在时钟的节拍上,这就保证了整个系统能协调有序地工作,不会乱套。

所以,时序逻辑电路是构建一切有“智能”、有“流程”的数字系统的基础。小到你手机里的计数器、交通灯控制器,大到CPU里的流水线、指令执行单元,核心都是时序逻辑。理解了它,你才算真正敲开了数字系统设计的大门。接下来,我会用最直白的方式,带你走一遍时序电路从分析到设计的完整流程,并用一个经典的“序列检测器”作为实战案例,手把手教你如何从想法变成电路图。

2. 庖丁解牛:时序逻辑电路的分析流程

当我们拿到一个现成的、也许有点复杂的时序电路图时,别慌。分析它的过程,就像侦探破案,一步步推导出它的行为逻辑。这个过程是标准化的,只要你按部就班,再复杂的电路也能理清。我把它总结为五个关键步骤,咱们一个一个来拆解。

2.1 第一步:识别核心部件与连接关系

首先,你得在电路图中找到两类核心“居民”:组合逻辑部分(一堆与或非门)和存储部分(通常是D触发器、JK触发器或T触发器)。找到所有触发器的时钟输入端(CLK),看它们是不是连在同一个时钟信号上。如果是,那这就是一个同步时序电路,也是最常见、设计起来最规矩的类型。如果不是,各自为政,那就是异步电路,分析起来会更棘手一些,今天我们主要讨论同步的。然后,明确电路的外部输入(比如命名为X)和最终输出(比如命名为Y)在哪里。

2.2 第二步:列出三大方程——驱动、状态与输出

这是分析的核心数学工作。你需要写出三个方程:

  1. 驱动方程:也叫激励方程。就是每个触发器输入端的逻辑表达式。比如,对于D触发器,就是D端的表达式;对于JK触发器,就是J端和K端的表达式。这个方程描述了组合逻辑如何驱动存储单元。
  2. 状态方程:将驱动方程代入你所用的触发器的特性方程,就能得到状态方程。特性方程是触发器的“出厂设定”,比如D触发器的特性方程是 Q* = D(Q表示下一个状态),JK触发器的是 Q* = J·Q' + K'·Q。状态方程直接表达了“下一个状态(Q)”与“当前状态(Q)”和“当前输入”之间的关系,是描述电路动态行为的关键。
  3. 输出方程:电路最终输出Y的逻辑表达式。它可能是当前输入和当前状态的函数。

我举个例子,假设我们有一个简单的电路,用一个D触发器,其D端接的是输入X和当前输出Q的异或(X⊕Q),那么:

  • 驱动方程:D = X ⊕ Q
  • D触发器特性方程:Q* = D
  • 状态方程:Q* = X ⊕ Q (这里直接把驱动方程代入)
  • 输出方程:假设输出Y就是Q,那么 Y = Q

2.3 第三步:绘制状态转移表与状态图

方程写出来了,但还不够直观。我们需要把抽象方程变成可视化的图表。状态转移表就像一个 truth table 的升级版,它列出了在所有可能的“当前状态”和“当前输入”组合下,会产生的“下一个状态”和“当前输出”。

当前状态 (Q)输入 (X)下一个状态 (Q*)输出 (Y)
0000
0110
1011
1101

(以上表为例,假设状态方程为 Q* = X ⊕ Q, Y = Q)

比表格更生动的是状态转移图。它用圆圈(或椭圆)代表一个状态,里面写上状态名或编码(如S0, S1)。用带箭头的弧线表示状态之间的转移,箭头上标注“输入/输出”。比如,从状态S0指向状态S1的箭头上写着“1/0”,就表示在当前输入为1时,电路从S0状态转移到S1状态,并且此时输出为0。状态图一眼就能看出电路的所有“行为路径”,是理解电路功能的神器。

2.4 第四步:归纳电路的逻辑功能

有了清晰的状态图,电路的逻辑功能就呼之欲出了。你可以像讲故事一样描述它:“这个电路有一个状态位。当输入X出现一个上升沿(0变1)时,状态会发生翻转;当输入X保持不变或为下降沿时,状态保持不变。输出就是当前的状态值。”——看,这描述是不是很像一个T'触发器(在时钟沿到来时,如果输入为1则翻转状态)或者一个简单的边缘检测与记忆单元?通过分析,我们就把一堆门电路和触发器,翻译成了人人都能理解的功能描述。

3. 从零创造:时序逻辑电路的设计心法

分析是“读懂别人写的诗”,设计则是“自己创作一首诗”。设计流程可以说是分析流程的逆过程,但更需要创造性和工程化的思维。我把它梳理成下面这个六步设计流,这也是业界标准的方法论。

3.1 第一步:明确设计规格——我们要做什么?

这是所有设计的起点,也是最容易出错的环节。你必须和系统架构师或产品经理反复确认,用精确、无二义的语言定义清楚:

  • 输入信号:有几个?叫什么名字?(如 clk, rst_n, data_in)
  • 输出信号:有几个?叫什么名字?(如 data_out, valid, flag)
  • 电路功能:用自然语言或时序波形图精确描述。例如:“检测输入序列 data_in 中是否连续出现 101,一旦检测到,就在同一时钟周期拉高输出 detect_out 一个周期。”
  • 时钟与复位:时钟频率是多少?复位是同步还是异步?高有效还是低有效?

把这些写成文档,这就是你和后续所有验证、后端工程师的“契约”。

3.2 第二步:抽象与建模——画出状态转移图

这是设计中最具艺术性的一步。你需要把文字描述的功能,转化成一个有限状态机模型。FSM是时序电路设计的灵魂。

  1. 定义状态:思考电路在完成功能的过程中,需要记住哪些“事情”。比如在序列检测器中,我们需要记住“已经接收到了输入序列的哪一部分”。对于“101”检测器,状态可能是:S0(初始态,啥也没收到或刚失败)、S1(收到了一个1)、S2(收到了10)、S3(收到了101,检测成功)。
  2. 绘制状态转移图:以这些状态为节点,根据输入条件,画出所有可能的状态转移路径。在S0态,输入1则转到S1,输入0则保持在S0。在S1态,输入0则转到S2,输入1则保持在S1(因为新的1是下一个可能序列的开头)……以此类推,直到覆盖所有情况。

注意:画状态图时一定要考虑完备性,每个状态在任何输入条件下,都必须有一个明确的下一个状态。这是保证电路不会“跑飞”的关键。

3.3 第三步:状态化简与编码——做优化与映射

画出的初始状态图可能不是最简的。状态化简就是合并那些“等价状态”。两个状态,如果对于所有可能的输入序列,它们产生的输出序列完全相同,那么这两个状态就是等价的,可以合并为一个。这能减少触发器的数量,简化电路。不过在现代EDA工具中,这一步通常由综合工具自动完成,但理解原理对写出高效的代码很重要。

接下来是状态编码,也就是给每个状态分配一个唯一的二进制代码。这就像给每个状态起一个“学号”。编码方式直接影响后续组合逻辑的复杂度。

  • 顺序编码:S0=00, S1=01, S2=10, S3=11。简单直观,但可能逻辑不是最优。
  • 格雷码编码:相邻状态间编码只有一位不同,如 S0=00, S1=01, S2=11, S3=10。这可以减少状态切换时多个触发器同时翻转带来的毛刺和动态功耗,在高速设计中常用。
  • One-hot编码:每个状态用一位触发器表示,如 S0=0001, S1=0010, S2=0100, S3=1000。需要更多触发器,但组合逻辑通常非常简单,译码速度快,在FPGA设计中尤其受欢迎,因为FPGA内部触发器资源丰富。

选择哪种编码,需要权衡触发器数量、组合逻辑复杂度、功耗和速度要求。

3.4 第四步:触发器选型与方程推导——落地成电路

有了编码后的状态转移表,我们就可以选择具体的触发器类型(D, JK, T)来实现状态寄存器。D触发器因为结构简单、控制方便,是绝大多数同步时序电路的首选,也是硬件描述语言(如Verilog/VHDL)中reg类型的默认映射对象。

然后,我们把状态转移表当成一个真值表:

  • “当前状态”和“当前输入”是输入变量。
  • “下一个状态”的每一位,对应一个触发器的D输入(如果用D触发器)。
  • “当前输出”是输出变量。

利用卡诺图或者逻辑综合软件,可以化简并求出每个触发器驱动端(D端)的逻辑表达式(驱动方程),以及输出信号的逻辑表达式(输出方程)。这一步,就把抽象的状态机,转化为了具体的门级网表。

3.5 第五步:验证与实现——检查与交付

最后,我们不能想当然。必须通过功能仿真,用测试向量激励电路,看它的波形输出是否符合最初的设计规格。同时,还要考虑时序验证,检查电路在指定的时钟频率下,建立时间和保持时间是否满足要求,有没有关键路径需要优化。

至此,一个时序逻辑电路从概念到门级实现的设计流程就完成了。下面,我们用一个贯穿始终的实例,把整个流程串起来,让你看得更真切。

4. 实战演练:设计一个“101”序列检测器

光说不练假把式。我们现在就来亲手设计一个经典的**“101”序列检测器**。要求是:电路有一个串行数据输入 X,一个时钟 clk,一个异步低电平复位 rst_n。输出为 Y。每当在 X 上连续检测到比特序列“1-0-1”时,就在检测到最后一个‘1’的同一时钟周期,将输出 Y 置为高电平1个周期,其他时间 Y 为0。

4.1 步骤一:理解需求与状态抽象

首先,我们仔细读题。“连续检测”意味着我们必须记住之前收到的比特。我们不能只盯着当前输入,必须得有“记忆”。那么,电路需要记住哪些情况呢?

  1. 初始状态,或者上一次检测失败后,什么有效序列都没记住。我们称这个状态为 IDLE(或者 S0)。
  2. 我们收到了一个有效的起始位 1。这是序列“101”的第一个比特。我们进入状态 GOT1 (S1)。
  3. 在已经收到一个1的基础上,又收到了一个0。现在序列是“10”了。我们进入状态 GOT10 (S2)。
  4. 在已经收到“10”的基础上,又收到了一个1。完美!序列“101”匹配成功!我们进入状态 GOT101 (S3),并在这个周期输出 Y=1。

但是,故事还没完。在每一个状态下,输入 X 都可能是0或1,我们需要考虑所有转移。比如,在 GOT1 (S1) 状态,如果下一个输入又是1怎么办?这破坏了“10”的序列,但新的1本身可能是一个新序列的开始!所以,正确的转移不是回到 IDLE,而是保持在 GOT1 状态。同理,在 GOT10 (S2) 状态,如果输入是0,那么“100”不是我们要的,但这两个连续的0也破坏了任何以1开头的可能,所以应该回到 IDLE。在 GOT101 (S3) 成功状态后,如果下一个输入是1,那这个1就是下一个可能序列的起点,应转到 GOT1;如果是0,则序列是“1010”,最后两位“10”可能是一个新序列的前两位吗?不,“1010”的最后两位“10”是在成功匹配之后,它应该被视为一个新序列“10”的开始吗?仔细想想,在成功输出后,电路应该重新开始检测。输入0无法作为任何以1开头的序列的开始,所以应该回到 IDLE。

经过这样的思考,我们才能画出完整且正确的状态转移图。这个过程非常锻炼逻辑思维,也是设计中最容易挖坑的地方。我早期就曾因为状态转移考虑不周,导致电路在边界条件下行为异常,调试了很久。

4.2 步骤二:状态编码与转移表

我们采用最简单的顺序编码,并为每个状态分配两位二进制码:

  • IDLE (S0): 00
  • GOT1 (S1): 01
  • GOT10 (S2): 10
  • GOT101 (S3): 11

我们用 Q1 Q0 表示当前状态(Q1是高位),D1 D0 表示下一个状态。根据上面分析的状态转移关系,我们可以列出状态转移表:

当前状态 (Q1 Q0)输入 (X)下一个状态 (D1 D0)输出 (Y)状态说明
00 (S0)0000IDLE, 输入0, 保持IDLE
00 (S0)1010IDLE, 输入1, 进入GOT1
01 (S1)0100GOT1, 输入0, 进入GOT10
01 (S1)1010GOT1, 输入1, 保持GOT1(新起点)
10 (S2)0000GOT10, 输入0, 回到IDLE
10 (S2)1110GOT10, 输入1, 进入GOT101(但输出看下一行)
11 (S3)0001GOT101, 输入0, 输出1, 回IDLE
11 (S3)1011GOT101, 输入1, 输出1, 进GOT1

注意:在状态 GOT101 (S3), 我们已经成功匹配。根据题意,在检测到最后一个‘1’的同一时钟周期输出高电平。因此,在 S3 状态,无论下一个输入是什么(决定下一个状态),当前输出Y都应该是1。这就是摩尔型状态机和米利型状态机的一个细微区别点。我们的电路在 S3 状态的输出只取决于当前状态,是摩尔型;但通常更高效的“101”检测器会设计成米利型,在 S2 状态且输入为1时就直接输出1。这里我们按题意设计为摩尔型。

4.3 步骤三:推导方程与电路实现

现在,我们把状态转移表视为真值表,Q1, Q0, X 是输入,D1, D0, Y 是输出。通过卡诺图化简(过程略),我们可以得到驱动方程和输出方程:

假设我们使用D触发器,则 Q1* = D1, Q0* = D0。

化简后可能得到:

  • D1 = Q1' & Q0 & X' + Q1 & Q0' & X (这只是一个可能的结果,具体需根据卡诺图)
  • D0 = Q1' & Q0' & X + Q1' & Q0 & X' + Q1 & Q0' & X (同上)
  • Y = Q1 & Q0 (因为只有状态 11 时输出为1)

有了这些方程,用与门、或门、非门等组合逻辑来实现 D1, D0, Y 的电路,再连接上两个D触发器的时钟和复位端,整个“101”序列检测器的门级电路图就诞生了。

4.4 步骤四:用Verilog HDL描述

在实际的工程中,我们几乎不会手动去画这些门电路,而是使用硬件描述语言(HDL)。用Verilog来描述上面的状态机,清晰又简洁:

module seq_detector_101 (
    input wire clk,
    input wire rst_n, // 异步低电平复位
    input wire X,
    output reg Y
);

// 状态编码参数化
localparam S0 = 2'b00;
localparam S1 = 2'b01;
localparam S2 = 2'b10;
localparam S3 = 2'b11;

reg [1:0] current_state, next_state;

// 状态寄存器(时序逻辑部分)
always @(posedge clk or negedge rst_n) begin
    if (!rst_n)
        current_state <= S0;
    else
        current_state <= next_state;
end

// 下一状态逻辑和输出逻辑(组合逻辑部分)
always @(*) begin
    // 默认值,避免锁存器
    next_state = S0;
    Y = 1'b0;

    case (current_state)
        S0: begin
            if (X) next_state = S1;
            else   next_state = S0;
        end
        S1: begin
            if (!X) next_state = S2;
            else   next_state = S1;
        end
        S2: begin
            if (X) next_state = S3;
            else   next_state = S0;
        end
        S3: begin
            Y = 1'b1; // 进入S3状态就输出1
            if (X) next_state = S1;
            else   next_state = S0;
        end
        default: next_state = S0;
    endcase
end

endmodule

看,用HDL描述,我们直接刻画状态转移行为,完全不需要关心 D1, D0 的具体布尔方程。综合工具会自动帮我们完成从行为描述到门级网表的优化和映射。这就是现代数字设计的主流方式。但你必须透彻理解背后的时序逻辑原理,才能写出正确、高效、可综合的代码,而不是停留在“模仿语法”的层面。

这个“101”检测器的例子虽然小,但它涵盖了同步时序电路设计的全部精髓:需求分析、状态建模、编码、实现与描述。我建议你最好用仿真工具(如ModelSim, VCS, 或者在线EDA平台)跑一下这段代码,看看在输入不同序列时,状态和输出是如何变化的,那种亲手验证设计正确的感觉,是理论学习无法替代的。掌握了这个核心方法,你就能去设计更复杂的控制器、计数器、通信协议处理单元,真正在数字芯片设计的海洋里畅游了。

时序逻辑电路设计实验从零实现:同步电路构建过程 深入讲解时序逻辑电路设计实验中的同步电路构建过程,涵盖状态分析、触发器选型与时钟控制等关键步骤,帮助掌握时序逻辑电路设计实验的核心方法与实践技巧。 阅读详情

相关推荐

别死记硬背了!用实际电路图拆解嵌入式硬件核心概念:竞争冒险、虚短虚断与电源设计

本文通过实际电路图拆解嵌入式硬件三大核心概念:竞争冒险、虚短虚断与电源设计,帮助工程师摆脱死记硬背,深入理解物理本质。文章结合Multisim和LTspice仿真,详细解析竞争冒险的产生机制与消除方法,运放电路的虚短虚断条件,以及LDO与DCDC的工程权衡,为嵌入式硬件开发提供实用指导。

weixin_42520780的博客 328

数字IC笔试千题解--判断题篇(五)

答案:错误。Verilog程序模块中输入、输出信号类型默认自动定义为wire型。

qq_57502075的博客 2875

【2023校招刷题】第二期:数字IC笔试模拟题(3)详细解析版

【2023校招刷题】第二期:数字IC笔试模拟题(3)详细解析版

悟已往之不谏 知来者之可追 3493

数字IC/FPGA校招笔试题解析(一)

在同步电路中,降低时钟频率虽能通过增加时序裕量减少毛刺被采样的风险,但并非从根源消除毛刺。异步电路中,毛刺仍可能被下游电路捕获。多bit数据因各bit传输延迟不同,直接采样可能导致数据错位。多bit数据总线无法直接通过寄存器同步处理,需采用专用同步结构(如AFIFO)或编码方式(如格雷码)。本文按题目顺序编排,每道题独立成段,包含问题、选项、答案及解析。无符号数比较器的硬件逻辑对称,仅决策点不同(判断高位为1或0),面积差异可忽略。任务可调用函数,但函数不可调用任务(因函数需即时返回,任务可能含时延)。

nuoweishizi的博客 1422

【数字IC刷题】华为海思数字IC笔试题(3)详细解析版

【数字IC刷题】华为海思数字IC笔试题(3)详细解析版

MoorePlus的博客 2372

组合逻辑、时序逻辑与FIFO设计-26届数字IC秋招笔试面试全攻略

本攻略详解数字IC设计的三大核心内容:组合逻辑、时序逻辑和FIFO设计。组合逻辑部分涵盖逻辑门、卡诺图化简和冒险分析;时序逻辑重点讲解触发器、状态机及代码实现;FIFO设计则涉及指针管理、满空判断和跨时钟域处理。通过Verilog代码示例和架构图,帮助读者掌握关键概念与实现方法。建议求职者注重基础概念理解、代码实践能力及常见题型训练(如状态机设计、FIFO深度计算),以应对笔试面试挑战。

2301_79143213的博客 747

时序逻辑电路设计:从触发器到状态机,掌握数字系统核心

数字电路的核心在于逻辑的实现,其中时序逻辑电路是构建复杂数字系统的基石。其原理基于触发器这一基本存储单元,能够在时钟信号的控制下,根据当前输入和过去状态产生输出,从而让电路具备了“记忆”功能。这种技术价值在于实现了数据的同步处理、状态保持与有序流转,是处理器、通信接口、存储控制等模块不可或缺的部分。应用场景广泛,从微控制器外设配置(如STM32寄存器操作)到芯片验证(如UVM寄存器模型中的镜像值管理),都深度依赖时序逻辑的设计。本文聚焦于时序逻辑的核心组件与设计方法,通过剖析寄存器、计数器及状态机,帮助读者

weixin_34007020的博客 413

4、集成电路技术:从制造到设计的全面解析

本文全面解析了集成电路技术,涵盖CMOS制造流程、VLSI设计步骤、组合与时序逻辑电路的区别、子系统设计方法以及ASIC设计流程。通过详细的技术分析与实际应用案例,帮助读者理解集成电路的核心原理与广泛应用。同时,文章展望了未来集成电路技术的发展趋势与挑战,为从事电子工程和芯片设计的人员提供了有价值的参考。

z4a5b6的博客 107

【题目精刷】2022紫光展锐-数字IC设计

为了能够在做题目的过程中学习到需要的知识,对每道题知识参考或者知识详情都做了详细的说明。方便后续复习。欢迎对文中的解答批评指正。

w0shishabi的博客 3287

【数字IC刷题】华为海思数字IC笔试题(10)详细解析版

【数字IC刷题】华为海思数字IC笔试题(10)详细解析版

MoorePlus的博客 709

FPGA从入门到精通

《Verilog/VHDL全面教程》提供46章从基础到实战的系统学习路径,涵盖FPGA开发全流程。教程从数字电路基础、开发环境搭建讲起,深入讲解Verilog/VHDL语言特性、逻辑设计方法与时序优化技术,并介绍存储器接口、高速通信等高级功能。特别包含图像处理、信号处理等应用专题,以及AXI总线、低功耗设计等系统级知识。最后通过5个实战项目和高级技术展望,帮助学习者掌握FPGA开发的完整技能体系,适合从入门到进阶的各类学习者。

2301_79143213的博客 1112

数字IC/FPGA校招宝典--笔试题(一)

一般而言握手信号可以用于高频时钟域到低频时钟域的同步,但是为了保证数据不被漏采,从高频到低频握手信号valid_tx需要做信号宽度拓展,至少拓展为1.5个周期的rx时钟,因此相应的数据data_tx也要保持多个n个tx周期不变,n=1.5*clk_rx/clk_tx。如果在上一状态寄存器输出为1,下一状态下输出为0,即便0不使用,也产生了0到1的跳变,同样会有功耗,既然不关心,还不如保持输出为1。解析:头脑风暴挖掘测试点是必须的,但是要保证测试点是符合规格说明和约束的,并且是可能会发生的场景。

lgk1996的博客 1210

告别两个电源模块!用UCD3138+四开关Buck-Boost,一个电路搞定电池充放电(附原理图分析)

本文详细介绍了采用UCD3138数字控制器和四开关Buck-Boost拓扑的双向DC/DC变换器设计,实现单一电路完成电池智能充放电管理。该方案显著降低BOM成本和PCB面积,提升系统效率至96.2%,适用于UPS、通信基站和储能系统,具有高效、紧凑和成本优势。

weixin_30256901的博客 397

verilog语法学习心得

verilog语法学习心得 1.数字电路基础知识: 布尔代数、门级电路的内部晶体管结构、组合逻辑电路分析与设计、触发器、时序逻辑电路分析与设计 2.数字系统的构成: 传感器 AD 数字处理器 DA 执行部件 3.程序通在硬件上的执行过程:      C语言(经过编译)-->该处理器的机器语言(放入存储器)-->按时钟的节拍,逐条取出指令、分析指令、执行指令 4.DSP处理是个广泛概

salvary的专栏 1329

激光条纹中心提取——Steger

激光条纹中心提取-Steger 好久没有记录了,记录一下今天学习的内容,据说Steger在激光条纹中心提取上神一般的存在。文章和代码都分享给大家了哈,其中有四个文件,3个C++,一个python,python一个抠图文件,3个c++包含背景图+原图, 单张图提取, 多张图提取。 分享代码 #include <opencv2\core.hpp> #include <opencv2\highgui.hpp> #include <opencv2\imgproc.hpp> #i

CharmsLUO的博客 5383

以太网传输硬件设计大全

1.网线的介绍RJ45由插头和插做组成,也就是我们常说的网口和网线。RJ45 网线插头又称水晶头,共有八芯做成。RJ45网络传输线分为直通线、交叉线和全反线。直通线用于异种网络设备之间的互连,例如,计算机与交换机。交叉线用于同种网络设备之间的互连,例如,计算机与计算机。全反线用于超级终端与网络设备的控制物理接口之间的连接。下面将介绍一下各线的作用和区别。1.直通线:又叫正线或标准线,两端采用568B做线标准,注意两端都是同样的线序且一一对应。直通线是应用最广泛,现在最常用的线。

weixin_45365488的博客 6751

[转]verilog语法学习心得

verilog语法学习心得 1.数字电路基础知识: 布尔代数、门级电路的内部晶体管结构、组合逻辑电路分析与设计、触发器、时序逻辑电路分析与设计 2.数字系统的构成: 传感器  AD  数字处理器  DA  执行部件 3.程序通在硬件上的执行过程:     C语言(经过编译)--&gt;该处理器的机器语言(放入存储器)--&gt;按时钟的节拍,逐条取出指令、分析指令、执行指令 4.DSP处理...

weixin_33805992的博客 181

链路聚合Eth-trunk以及华为交换机配置实例

链路聚合简介 以太网链路聚合Eth-Trunk简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。 目的: 随着网络规模不断扩大,用户对骨干链路的带宽和可靠性提出越来越高的要求。在传统技术中,常用更换高速率的接口板或更换支持高速率接口板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。 采用链路聚合技术可以在不进行硬件升级的条件下,通过将多个物理接口捆绑为一个逻辑接口

ChaseAug的博客 2万+

数字IC面试必考:手把手教你从波形图推导Verilog代码(以HDLbits circuit1-10为例)

本文详细解析数字IC面试中波形图逆向推导Verilog代码的方法,以HDLbits circuit1-10为例,介绍组合逻辑和时序逻辑的波形分析技巧、真值表构建、卡诺图化简及代码实现。通过WAVE法则和实战案例,帮助工程师掌握从波形图到Verilog代码的系统化思维,提升面试通过率。

weixin_33738982的博客 498

【图像分类】卷积神经网络之VGGNet网络模型实现花卉图像识别(附代码和数据集,PyTorch框架)

卷积神经网络之VGGNet网络模型实现花卉图像识别(附代码和数据集,PyTorch框架)

学无止境、积少成多、厚积薄发 2431

xtop:multi_driven_net与incomplete_timing_cell fail reason 分析

man multi_driven_net”可以得知,这个问题是multi driven结构引起的,使用命令“get_failed_pins -reason multi_driven_net”,获取violation pin。“man incomplete_timing_cell”可以得知,这个fail reason的原因是缺少timing library cell,检查并补全后这个错误就显示了。这里选择的解决方法是修改lib文件,把inout改成input,重新lib2idb。通过这种方法解决了问题。

m0_61544122的博客 568

9.19 verilog学习

9.19verilog100题学习8.FPGA和CPLD的区别?9:锁存器(latch)和触发器(flip-flop)区别?10:FPGA芯片内有哪两种存储器资源?11:什么是时钟抖动?12:FPGA设计中对时钟的使用?(例如分频等)13:FPGA设计中如何实现同步时序电路的延时?14:FPGA中可以综合实现为RAM/ROM/CAM的三种资源及其注意事项?15:Xilinx中与全局时钟资源和DLL...

weixin_42219690的博客 4012

【VTKExamples::PolyData】第十六期 GradientFilter

本文分享VTK样例GradientFilter,并解析接口vtkGradientFilter & vtkAssignAttribute,希望对各位小伙伴有所帮助!

qq_40041064的博客 322

74LS90多进制计数器设计:从原理到Proteus仿真的完整指南

本文详细介绍了74LS90多进制计数器的设计原理与Proteus仿真实践。从芯片内部结构解析到各种进制(如二进制、十进制等)的实现方法,再到Proteus仿真环境中的具体操作步骤,为电子工程师和学生提供了完整的指南。重点讲解了如何利用反馈电路设计任意进制计数器,并解决实际应用中可能遇到的毛刺和复位问题。

weixin_30823001的博客 481

【Unity实战篇】 接入百度翻译,实现文本自动翻译功能

日常在做项目的过程中,游戏本地化几乎已经成为必不可少的一步。 本篇文章将演示怎样在Unity中接入百度翻译,实现文本自动翻译的功能。

努力前行,总会成为自己心中的那道光 9060

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: ABAP开发者必看:CORRESPONDING操作符的5个实战技巧(附避坑指南)
下一篇: 统信UOS 1060安装避坑指南:为什么你的网卡驱动总是装不上?
code8
博客等级 码龄17年 65粉丝 1720原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值