Verilog和FPGA的自学笔记6——计数器(D触发器同步+异步方案)

Multisim实现D触发器模拟同步计数器 D触发器模拟同步计数器一. 元器件介绍二. 原理分析三. 仿真实验1. 单步触发计数器2. 沿时钟触发计数器 一. 元器件介绍 这里用到的元器件有: DIgital power(VCC)数字电源 DIGITAL-CLOCK 数字时钟 逻辑分析仪(XLA) ground 数字地 SPST 单刀单掷开关 74HC74D_4V D触发器芯片 DCD_HEX 数码管(带译码器四位二进制输入) PROBE 电位探测灯 PB_DPST 弹簧式触发开关 SPDT 单刀双掷开关 XOR2 双输入异或门 ... 阅读详情

先扯点别的,也是填填前面的坑,比如……

阻塞?非阻塞?

一直都不知道把这个写在哪里,随便安排一下叭(捂脸……)
Verilog中的赋值类型分为阻塞赋值(blocking)和非阻塞赋值(Non-Blocking)。

关于在一个名词后面加一个英文词汇这件事,虽然不知道有多少人会认真看,但我还是要加,因为这样可以显得我英语很好哈哈~~

对于阻塞赋值,嗯……看名字应该是什么阻塞了赋值。

  • 语法结构:变量 = 表达式;

做个阅读程序写结果的题吧!cos信息学初赛试题……

认真思考!

reg a,b,c;

always @(*) begin
	a = 1'b1;
	b = a;
	c = a + b;
end

各位编程大佬发表发表意见,说说a,b,c分别等于多少?

以上就是一段经典的三个阻塞赋值语句。
结果:a=1,b=1,c=0。(盲猜会阻塞赋值的也会做错哈哈 ^_^,别问怎么知道的……)

关于Verilog,大家都知道一句很经典的名言:

不要用软件编程的思维思考硬件编程

哎,但这里是顺序执行的:先把1赋给a,再把等于1的a赋给b,最后计算1+1 = 10 ,由于c为一位寄存器,丢掉高位后为0;

所以,always语块中阻塞赋值是串行执行的

此乃阻塞赋值之真谛。

非阻塞赋值就好理解了,核心就是FPGA的精华:并行处理。

  • 语法结构:变量 <= 表达式; (区别就在有没有小于号)

重做一遍(只考虑第一次运行):

reg a,b,c;

assign a = 1'b0;
assign b = 1'b0;
assign c = 1'b0;     //初始化信号为0

always @(*) begin
	a <= 1'b1;
	b <= a;
	c <= a+b;
end

结果:a = 1,b = 0,c = 0。
第一次可能有点迷糊,过程是这样的:首先,所有非阻塞语句右边表达式同时进行运算。

那第二、三个语句a和b还没算出来怎么办呢?

答:按照之前的旧数算(a=0,b=0)。(这里就把右边的ab看成具体的数,不要看成变量)

之后将结果同时赋给变量a,b,c。

所以最终结果分别是1,0,0。

注意:阻塞和非阻塞是对于时序逻辑always来说的,组合逻辑assign只有"="赋值。
别把下面这个东西写出来!

assign a <= b;

大家记住就可以了啊:时序逻辑你就写非阻塞赋值,组合逻辑就写阻塞赋值,这样就没问题了~

异步计数器

我觉得计数器中最好理解的当属异步计数器,我们就先做这个简单的吧~
个人观点:同步计数器纯粹锻炼思维用的……

D触发器构成的异步二进制计数器
CP 是计数器的时钟信号,每当脉冲到来时对D(Data)上的信号进行寄存。无论默认状态下Q非如何,由于Q非连接D,所以在每个脉冲下进行反转,也就是二分频。

同理,再把第一个D触发器当作时钟输入第二个D,对信号再次分频得到四分频。这同时也是一个两位二进制计数器。

原理说完了,接下来我们就要思考实现了。
鉴于我和大家都已经对Verilog有了大体印象,今天按照FPGA工程流程来吧!

1.模块设计

要设计一个module,我们首先要明确其具体功能,以及对应的输入和输出信号。
对于异步二进制计数器,时钟(CLK)是必不可少的,除此之外还应有复位(RST)信号。输出则是计数器的每一位(假设3位)。

这样我们就得到了计数器模块的大体框架:

在这里插入图片描述

懒得作图了,自己画的,将就着看吧……

把时钟信号和复位信号分别命名为sys_clk和sys_rst是行业习惯,咱也跟着写吧。

这里注意输出的out信号应为3位寄存器类型。

2.RTL代码

给大家讲个笑话:昨天本人花了好一阵子才把异步计数器写出来……但写完后真是觉得自己对Verilog代码的应用更加得心应手了。说句实话,如果你确实认真看完前五篇笔记,那么现在能力上对于完成计数器是绰绰有余了。真心希望大家下定决心无论如何也要自己把它写出来,最好直接仿真通过,再和我提供的代码进行对比。这样的进步绝对比先看代码再自己写要大得多。

大家一定相信我啊!

无从下手时的一点提示:考虑一下always的时序逻辑。

module counter(
    input sys_clk,
    input sys_rst,
    output [2:0] out
);

reg reg1,reg2,reg3;

always @(posedge sys_clk or negedge sys_rst) begin
    if (!sys_rst)
        reg1 <= 1'b0;
    else
        reg1 <= ~reg1;
end

always @(negedge reg1 or negedge sys_rst) begin
    if (!sys_rst)
        reg2 <= 1'b0;
    else
        reg2 <= ~reg2;
end

always @(negedge reg2 or negedge sys_rst) begin
    if (!sys_rst)
        reg3 <= 1'b0;
    else
        reg3 <= ~reg3;
end

assign out = {reg3,reg2,reg1};

endmodule

其实写完了看着吧真没啥,就是写了仨反转机而已,但一开始设计就是不知道咋写……捂脸。

下面是vivado综合出来的硬件电路:
在这里插入图片描述有点混乱……
不过可以看到对应FPGA的D触发器并没有Q非,而是在Q后面接一个反相器实现的。

一开始很久没看明白这破图里粗绿线还有黑三角啥意思,半天才看明白那是表示总线,总线上对应数字相连。黑三角代表总线与单根线的连接。(破涕为笑)

3.编写仿真文件

这次关于仿真文件说个新知识点(不算新吧,反正之前没这么用过):怎么实现CLK信号的连续反转捏?总不能无限的复制粘贴吧~

其实你只要复制粘贴一个周期(毕竟一个周期对了就行)
虽然理论可行,但总感觉差点意思。

确实,所以这里给大家介绍always语句的新用法,专门在tb里的用法:

always #延迟时间 语句;

这意思就是说always间隔一段延时时间,就执行一次后面的语句。

比如上面计数器的RTL代码对应的tb文件中的CLK信号就应该这么写(故意写这么长的句子哈哈):

always #10 sys_clk <= ~sys_clk; 

这意思就是每隔10个时间单位(不见得一定是1ns),sys_clk信号就反转一次。
时钟信号就这么完美的完成啦!开心~

下面是我写的tb文件:

`timescale 1ns/1ns

module tb_register();

reg sys_clk,sys_rst;
wire [2:0] out;

initial begin

    sys_clk = 1'b0;
    sys_rst = 1'b0;

    #100
    sys_rst = 1'b1;

end

always #10 sys_clk <= ~sys_clk; 

register u_register(
    .sys_clk(sys_clk),
    .sys_rst(sys_rst),
    .out(out)
);

endmodule

注意一下sys_clk 仍需要在initial块里赋初值。

以下是我仿真出来的图,左边有对应名称:

在这里插入图片描述

相信大家都能自己走到这一步!

同步二进制计数器

接下来的电路有一点小复杂……

在这里插入图片描述
这是一个经典的由D触发器组成的同步二进制计数器。同步和异步的区别就在于时钟信号:所有触发器的时钟相同称为同步,反之亦然。

上图中G1、G2为异或门(XOR),G3为与门(AND)。

第一个D触发器很好理解,就是一个毫无特色的1位计数器。

为方便大家理解,真值表列举如下(假设三个触发器初始值为0):

clkQ0
00
11
20
31

接下来需要完成第二级计数。
观察一下异或的真值,可以发现一些东西:

ABY
000
011
101
110
000
011
101
110

这里我特地重复一遍以方便观察。我们发现,A和B似乎分别就是二级和一级触发器,Y则是A打一拍后的信号。

所以我们可以把前两个触发器的输出异或,异或结果接入二级触发器的D端。

可以看到,这个电路通过利用异或门非常巧妙的实现了二分频。

既然可以通过异或门实现分频,那对于F3为什么又用了与门呢?咱们不妨再用异或门构尝试一下:若仅将Q2与Q3的异或结果输入F3,结果如何?

第1个时钟到来时,Q1和Q2均为0,异或结果为0,F3寄存值为0.
第2个时钟到来时,Q1为0,Q2为0,异或结果为0,F3寄存值为0.
第3个时钟到来时,Q1为1,Q1为0,异或结果为1,F3寄存值为1.
第4个时钟到来时,Q1为1,Q1为1,异或结果为0,F3寄存值为0.

真值表如下:

clkQ1Q2
000
100
210
311
400
500
610
711

可以看到,仅通过相同异或是无法对Q1再分频的。再准确点,Q1与Q2的周期是相同的(同为4个clk)。

那咋办捏?

我们再观察Q1和Q2的真值表,导致第四个clk到来时Q2反转的原因是Q1和Q2相同(同为1),然而之后的三个时钟周期Q2总是与Q1相同。所以,如果我们能够让Q2在第四个clk时把1保留下来,这事不就妥了吗?

那如何保持第四个clk时Q2的输出不变呢?我们现在在设计时序电路,对于时序电路最重要的就是观察利用每个时钟下状态。所以再回去瞅瞅Q0和Q1在第四个clk附近的真值表。

发现当第三个clk结束时Q0和Q1同为1。或者说,如果给Q0和Q1按上个与门,结果与Q1相同(即不影响Q1的结果)

所以如果我们将这个与门的输出接入F3,那么Q2的1就可以维持到第五个clk的到来。
再之后,由于Q2为1,它将与Q1总是不同,此时再利用异或门就可以持续维持1了。

clkQ0Q1Q2
0000
1100
2010
3110
4001
5101
6011
7111

在这里,我们巧妙的利用了时钟周期,并通过与门实现了Q2在第四个clk结束时状态的维持。

接下来就可以开始编写RTL代码了,按照电路图写就号好:
还是希望大家先自己写……

module counter(
    input sys_clk,
    input sys_rst,
    output [2:0] out
);

reg F1, F2, F3;

// 时序逻辑,在时钟边沿更新所有寄存器
always @(posedge sys_clk or negedge sys_rst) begin
    if(!sys_rst) begin
        // 复位时清零所有寄存器
        F1 <= 1'b0;
        F2 <= 1'b0;
        F3 <= 1'b0;
    end
    else begin
        // 每个时钟周期更新值,使用前一个状态计算新值
        F1 <= ~F1;                  // F1 翻转
        F2 <= F1 ^ F2;              // F2 基于 F1 和自身前值更新
        F3 <= (F1 & F2) ^ F3;       // F3 基于 F1、F2 和自身前值更新
    end
end

// 输出组合
assign out = {F3, F2, F1};

endmodule

仿真文件与异步计数器的完全相同(毕竟除了原理,两个计数器的工作流程完全一致),就不再水字数啦哈哈~

仿真出来的波形也完全一样,就不再贴图啦~

常常思考同步和异步计数器再设计逻辑上的区别,因为异步计数器很简单,更像是无脑堆触发器。对于同步计数器而言,无论是时序还是逻辑完全上了一个档次。之前疑惑为啥非要整一个同步的呢?功能没区别逻辑却复杂了不少。直到最近设计CPU的时候才发现了同步计数器的必要性。

CPU中有一个叫做程序计数器(PC)的东西,本质是一个可以自己计数的寄存器。当写使能打开时,支持数据写入(跳转),PC使能时支持自增+1,由于高位触发器的时钟来自低位触发器的输出,如果此时再用异步计数器,当写使能关闭时,存在触发时钟的可能,那后面的数据自然就会乱套。

如果采用同步计数器,只需在每一个D端加一个MUX即可。而这样也是真正做到了到底是跳转还是计数的选择。

还有这种方式?!

其实,计数器的设计完全不用这么复杂的……
(难道我们在C++里的计数器需要复杂的逻辑运算吗?)

看看这个:

module counter(
	input	sys_clk,
	input	sys_rst,
	
	output	reg [2:0]	cnt
    );

always@(posedge sys_clk or negedge sys_rst_n) begin
	if(!sys_rst_n)
		cnt <= 3'd0;
	else
		cnt <= cnt + 3'd1;
end

endmodule

哈哈~

如果有不明白或错误之处,也希望大家在评论区给出,帮助大家的同时也能再次提升自己对于FPGA和Verilog的理解,感谢大家!!

系列链接:
上一篇:Verilog和FPGA的自学笔记5——三八译码器(case语句与锁存器)
下一篇:Verilog和FPGA的自学笔记7——流水灯与时序约束(XDC文件的编写)

Verilog信号流动:从建模到时序设计的FPGA工程思维 数字电路设计中,硬件描述语言是连接逻辑思维与物理实现的桥梁,而Verilog正是其中最普及的语言之一。理解它不能停留在语法层面——真正的核心在于“描述电路”与“描述信号的流动”。无论是数据流建模中的assign,还是行为级建模中的always块,本质上都在刻画物理器件的连接与时序关系。建立时间与保持时间决定了信号能否被可靠采样,计数器、状态机、SPI/UART等常见模块则是信号流动的经典形态。设计者还需要借助Testbench进行仿真验证,并利用现代工具链提升效率。本文从这些基础概念与工程实践出发,深入探讨 阅读详情

相关推荐

FPGA进阶路线图:从Verilog基础到DDR/PCIe项目实战

在数字系统设计中,Verilog作为硬件描述语言,是描述电路逻辑的基础工具,但真正的挑战在于理解其综合后的物理实现。FPGA开发不仅要求功能正确,更要求时序收敛——时序约束与跨时钟域处理是初级工程师迈向高级工程师的关键分水岭。凭借并行计算与低延迟特性,FPGA在图像处理、高速接口、工业控制等场景中占据不可替代的地位。不少从STM32转行FPGA的开发者,常常因缺乏清晰的学习路径而陷入迷茫。掌握从UART到PCIe的阶梯式项目实践,并深入理解时序分析、调试工具与代码规范,是突破瓶颈的有效方式。本文围绕高频搜索

weixin_29175469的博客 309

D触发器设计同步12进制加计数器

基于D触发器的计数器,需要进行状态映射,将计数器的各位对应到各个触发器上,本质即为状态机的次态设计,利用D触发器设计同步12进制加计数器······

ZUOZYsama的博客 6630

科罗拉多大学FPGA设计教程:VHDL/Verilog系统化学习指南

硬件描述语言(HDL)是数字电路设计的核心,它通过代码描述硬件行为,实现从逻辑门到复杂系统的建模。其工作原理基于并行执行和时序逻辑,与软件编程的串行思维有本质区别。掌握HDL的技术价值在于能够设计可编程逻辑器件,实现高性能、低功耗的定制化硬件。在FPGA开发、ASIC设计、嵌入式系统等领域,HDL是连接算法与硬件的桥梁。对于初学者,系统化学习路径和仿真环境搭建是关键。科罗拉多大学的FPGA设计教程提供了完整的VHDL和Verilog教学体系,涵盖从语法基础到Testbench验证的全流程,尤其适合通过仿真工

weixin_33769125的博客 420

D触发器 (D-FF)详解

版本2的特点: 采用功能描述风格,使用always和if-else对输出变量赋值。 negedge Sd_是一个异步事件,它与if(~Sd_)必须匹配,negedge Rd_是另一个异步事件,它与if(~Rd_)必须匹配,这是语法规定。 当Sd_为0时,将输出Q置1; 当Sd_=1且Rd_=0时,将输出Q置0; 当Sd_和Rd_均不为0,且时钟CP的上升沿到来时,将输入D传给输出Q。 注意,如果置1事件、置0事件和时钟事件同时发生,则置1事件的优先级别最高、置0事件的次之,时钟事件的优先级最低。 例

timerring的博客 3万+

时序逻辑功能器件详解:锁存器、触发器、寄存器与计数器

时序逻辑是数字电路的核心,通过状态引入时间维度,使电路具备记忆能力。其原理基于双稳态反馈和时钟边沿触发,关键技术包括锁存器、触发器、寄存器、计数器及移位寄存器。掌握时序逻辑能有效提升电路稳定性与可靠性,广泛应用于同步状态机、总线接口、串并转换等场景。本文深入讲解常用时序逻辑功能器件的内部机制、选型要点与工程避坑指南,帮助读者从波形理解进阶到实际设计。

weixin_26886855的博客 263

FPGA十进制计数器设计:异步复位、同步使能与按键消抖实战

十进制计数器是数字电路中基础但关键的时序模块,其本质是异步输入(如机械按键)与同步逻辑(计数、进位、译码)的协同边界。理解异步复位(CLR)的优先级机制和同步使能(ENA)的采样约束,是避免亚稳态、毛刺和锁存器推断的核心。结合50MHz系统时钟下的20ms按键消抖设计,可将不可靠的物理输入转化为干净的计数时钟;再通过共阳极七段数码管译码与动态扫描控制,实现从单数字到0–9999的完整显示系统。本实践覆盖Verilog建模、ISE综合约束、ChipScope硬件调试全流程,直击FPGA工程落地中的典型时序痛点

weixin_34072458的博客 206

第22篇:异步复位D触发器

异步复位D触发器

weixin_47841246的博客 2982

Verilog可综合代码实战:从与门到延时链的FPGA全流程训练

Verilog是一种硬件描述语言,其核心价值在于将抽象逻辑映射为真实数字电路。理解组合逻辑与时序逻辑的建模原理,掌握wire/reg类型选择、阻塞/非阻塞赋值、复位策略等关键语法约束,是实现可综合RTL设计的基础。技术价值体现在避免锁存器推断、保障时序收敛、提升资源利用率;典型应用场景包括FPGA原型验证、数字电路教学实验、ASIC前端开发及芯片岗位岗前训练。本文聚焦‘能跑通、能仿真、能综合’的Verilog最小可运行单元,覆盖全加器、D触发器、分频器、延时链等八类高频可综合电路,直击学生与转行工程师在Qu

weixin_32239523的博客 156

Modelsim异步复位-D触发器

EDA课程中,仿真D触发器,仅供读者参考

qq_58827923的博客 992

Cyclone10 FPGA按键消抖实战:Verilog计数消抖与边沿检测

在FPGA开发中,机械按键的物理抖动会导致电平不稳定,影响系统可靠性。通过Verilog计数器实现消抖,结合边沿检测技术,可有效滤除抖动并输出干净的按下/释放脉冲。该方案基于Cyclone10 FPGA和Quartus 17.1,利用参数化设计适配不同时钟频率,占用资源少,适用于状态机触发、计数器控制等场景。热词如“按键消抖电路”和“Verilog计数器”在此链路中自然融入,为FPGA入门者提供可复用的工程实践。

weixin_29185199的博客 308

HDL十进制计数器设计:同步复位、进位链与时序约束

十进制计数器是数字电路与FPGA开发中最基础的时序逻辑单元,其本质是有限状态机(FSM),需严格遵循同步时序设计原则。理解复位方式(同步/异步)、进位输出(COUT)的建立保持时间、以及避免锁存器生成等关键原理,直接决定综合结果的可靠性与硬件行为一致性。在ISE 14.7等经典工具链中,正确建模可确保资源高效利用、时序收敛稳定,并支撑数码管动态显示、多级级联计数及出租车计价器等典型应用场景。本文聚焦HDL行为建模与FPGA实现闭环,覆盖从Verilog编码、ISim仿真到bit文件下载的完整工程实践。

weixin_33829657的博客 359

7天零基础FPGA入门:从Verilog语法到数字钟实战

FPGA(现场可编程门阵列)是一种可通过硬件描述语言(如Verilog)重构内部电路的半导体芯片,其核心原理在于将软件逻辑映射为并行执行的硬件电路,从而实现极高的处理速度和确定性延时。这一特性使其在通信、图像处理等对实时性要求苛刻的领域具有不可替代的技术价值。学习FPGA的关键在于思维模式的转换,即从软件的顺序执行思维转向硬件的并行电路思维。本文以“7天零基础”为框架,通过每日明确的主题任务,如环境搭建、Verilog基础语法、状态机设计、模块化仿真以及UART通信驱动等,手把手引导初学者完成从概念认知到综

张 作强 BLOG 492

FPGA十进制计数器设计:从ISE 14.7到硬件验证全流程

十进制计数器是数字电路与FPGA开发中最基础的时序逻辑单元,其本质是同步时序电路的设计实践,依赖精确的时钟域管理、复位同步化建模和物理约束声明。掌握该设计,意味着理解HDL硬件思维核心——无默认状态、无运行时异常、一切行为需显式建模。技术价值体现在可复用的模块结构、可收敛的时序路径与可验证的仿真闭环,广泛应用于数码管动态扫描、频率分频、状态机计数等嵌入式控制场景。本文聚焦ISE 14.7平台下的Verilog实现,覆盖同步复位、UCF约束、ISim仿真及bit文件下载等关键环节,助力初学者跨越FPGA工程落

weixin_34006468的博客 218

FPGA按键消抖:从原理到工程实现,基于Cyclone 10与Verilog的完整方案

在数字电路与嵌入式系统设计中,信号完整性是确保系统可靠性的基础。物理世界中的机械开关(如按键)在闭合或断开时,由于金属弹片的弹性碰撞,会产生持续数毫秒的电平抖动,这种异步的、非理想的信号若被高速数字系统(如FPGA)直接采样,将导致严重的误触发。其核心原理是通过数字滤波技术,将不稳定的机械信号转换为干净的数字脉冲。常用的技术方案包括计数器判决法、状态机法和移位寄存器法等,它们本质上都是在特定时间窗口内对信号进行持续监测,以判决其稳定状态。这一技术的工程价值在于,它是FPGA及所有微控制器与外部异步信号交互的

weixin_30363285的博客 267

FPGA开发实战:Verilog建模、Quartus仿真与硬件时序验证

FPGA是一种基于硬件描述语言(HDL)实现可重构数字电路的专用集成电路,其核心原理是通过查找表(LUT)和触发器(FF)物理构建并行逻辑路径,而非执行软件指令。这种架构带来确定性延迟、零软件开销和高并发处理能力,技术价值体现在实时控制、协议硬核加速与高速接口时序精准管理等关键场景。典型应用包括数码管动态扫描、Ethernet MAC层对接、MIPI图像流处理及跨时钟域复位同步等工程任务。本文聚焦Verilog建模规范、Quartus II与ModelSim协同仿真流程、以及真实信号闭环验证方法,帮助开发者

weixin_33994429的博客 351

FPGA四路电子抢答器设计与实现:Verilog模块划分到板级调试全解析

在数字系统设计中,FPGA以其硬件并行性和确定性响应成为实现实时控制与信号处理的核心平台。Verilog作为硬件描述语言,能够精确描述组合逻辑与时序逻辑,而按键消抖、状态机仲裁、数码管动态扫描等基础技术则是构建可靠系统的关键。理解亚稳态的产生机理与消除方法,掌握模块化设计思想,对于提升数字电路工程实践能力至关重要。以经典的四路电子抢答器为应用场景,从需求拆解、模块划分、Verilog代码实现到仿真验证与板级调试,完整展示了一个典型FPGA项目的开发流程,并分析了判优锁存、时钟使能等核心技术难点,为FPGA初

weixin_33842304的博客 455

同步时序电路设计避坑指南:从Verilog代码到时序收敛

同步时序电路是数字系统设计的核心范式,其本质是通过统一主时钟协调所有寄存器动作,依赖建立时间、保持时间等物理约束保障可靠性。技术价值在于规避亚稳态、实现可预测时序行为,并支撑FPGA/ASIC中高速状态机、计数器与跨时钟域通信等关键模块。典型应用场景包括课程设计中的计数器实现、IC笔试中的状态机编码分析、以及工业项目中遗留同步逻辑的调试与重构。本文聚焦同步性验证、时序约束落地、状态机综合陷阱三大实操难点,结合Quartus/Vivado工具链,解析复位策略、clock enable边界、ASYNC_REG属

weixin_29188043的博客 88

西工大计算机学院数电实验三Verilog完整工程包:含移位器、计数器、定时器、D触发器及共享模块源码与testbench

西北工业大学计算机学院《数字逻辑与Verilog设计》课程实验三配套开发资源,包含shifter_4(4位移位器)、count(计数器)、Timer(定时器)、dff(D触发器)和shared(共享模块)五个核心电路的Verilog源文件,全部通过Quartus II环境验证。提供完整的工程配置文件(.qpf、.qsf、.qws)、仿真支持文件(.cr.mti)、物理引脚约束(.mpf)以及可直接加载运行的.v格式测试激励文件。配套两份实用文档:《数字电路实验三.docx》明确实验功能要求与接口规范,《Qu

xk7n92h3p5m的博客 205
上一篇: Verilog和FPGA的自学笔记5——三八译码器(case语句与锁存器)
下一篇: Verilog和FPGA的自学笔记7——流水灯与时序约束(XDC文件的编写)
bnsarocket
博客等级 码龄7年 97粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值