【芯片设计- RTL 数字逻辑设计入门 6 -- 带同步复位的D触发器 RTL实现及testbench 验证】

这篇具有很好参考价值的文章主要介绍了【芯片设计- RTL 数字逻辑设计入门 6 -- 带同步复位的D触发器 RTL实现及testbench 验证】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

带同步复位的D触发器

【芯片设计- RTL 数字逻辑设计入门 6 -- 带同步复位的D触发器 RTL实现及testbench 验证】,芯片设计 RTL 数字逻辑设计扫盲,fpga开发
同步复位 :复位只能发生在在clk信号的上升沿,若clk信号出现问题,则无法进行复位。

Verilog 代码

// timescale ins/1ns

module flopr (
	input			rstn,
	input			clk,
	input[3:0]		d,
	output[3:0]		q
);

reg [3:0]			q_out;

// synchronous reset
always@(posedge clk) begin
	if (!rstn) begin
		qout <= 4'b0;
	end
	else begin
		q_out <= d;
	end
end

assign q = q_out;

testbench 代码

module test;
	reg			rstn;
	reg			clk;
	reg[3:0]	d;
	reg[3:0]	q;

	flopr flopr_test(
		.rstn(rstn),
		.clk(clk),
		.d(d),
		.q(q)
	);

	initial begin
`ifdef DUMP_FSDB
		$display("Dump fsdb wave!");
		$fsdbDumpfile ("test. fsdb");
		$fsdbDumpvars;
`endif
	
	clk = 1'b0;
	rstn = 1'b0;
	#50;
	rstn = 1'b1;

	$display("Running D trigger testbench");
end

always begin
	#10;
	clk =~ clk;
	$display("---run time--- : d", $time);
	if ($time >= 1000) begin
		$finish;
	end
end

initial begin
	#100 d =4'b0001;
	#20 d = 4'b0010;
	#20 d = 4'b0011; #20 d = 4'b0100;
	#20 d = 4'b0101; #20 d = 4'b0111;
	#20 d = 4'b1000;
	#20 d = 4'b1001;
	#50 $finish; // here is a system task which can stop the simulation
end

endmodule

编译及仿真

【芯片设计- RTL 数字逻辑设计入门 6 -- 带同步复位的D触发器 RTL实现及testbench 验证】,芯片设计 RTL 数字逻辑设计扫盲,fpga开发

波形如下
【芯片设计- RTL 数字逻辑设计入门 6 -- 带同步复位的D触发器 RTL实现及testbench 验证】,芯片设计 RTL 数字逻辑设计扫盲,fpga开发
从波形可以看到,在第100ns后,第一个 clk 时钟沿变化时 q 的信号和 d 的信号保持一样,后面依次如此。

问题小结

在写 testbench 测试的时候遇到了下面问题:

Net type cannot be used on the left side of this assignment.
【芯片设计- RTL 数字逻辑设计入门 6 -- 带同步复位的D触发器 RTL实现及testbench 验证】,芯片设计 RTL 数字逻辑设计扫盲,fpga开发
后来发现是在 testbench 中对 q_out 的定义使用 wire 类型导致的,修改为 reg即可 。文章来源地址https://www.toymoban.com/news/detail-826187.html

到了这里,关于【芯片设计- RTL 数字逻辑设计入门 6 -- 带同步复位的D触发器 RTL实现及testbench 验证】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 电路与数字逻辑课程设计-电子钟功能

    以下内容为我电路与数字逻辑实验的实验报告内容。 实验部分采用的是logisim实现 本实验因时间问题做的比较仓促,有许多不足之处,还请谅解。 想要完整代码的可以在我的博客资源进行下载 电路与数字逻辑课程设计-电子钟-单片机文档类资源-CSDN文库 一、课程设计目的 设

    2023年04月21日
    浏览(48)
  • 数字电路实验一 组合逻辑电路的设计预实验报告

                                    ---用与非门74LS00,74LS20设计制作一个三人表决电路 (验证性实验) 1.查资料画出74ls00和74ls20芯片引脚图排列图,画出逻辑符号,掌握逻辑功能。 2.组合逻辑设计的一般步骤?用74LS00和74LS20设计制作一个三人表决电路(即3个人中有

    2023年04月25日
    浏览(48)
  • 数字逻辑与部件设计基础实验——3-8译码器

    用连续值 或者always语句实现3-8译码器74138 了解3-8译码器的功能,锻炼根据功能表实现硬件功能的能力 熟悉上板操作的步骤和流程 74138的器件手册中的Function Tables: 用verilog语言在vivado环境下编写源文件,实现3-8译码器。经综合、实现、生成bitstream文件后,将bit文件下载到NE

    2024年02月02日
    浏览(38)
  • Verilog学习笔记(3):Verilog数字逻辑电路设计方法

    例:用Verilog设计模256(8bits)计数器 (a)可综合程序描述方式 (b)常见的错误描述方式 同时Verilog的电路描述方式具有多样性,这也决定了对于电路设计的多样性。 例:用Verilog设计数字多路选择器 (a)采用真值表形式的代码 (b)采用逻辑表达式形式的代码 (c)采用结

    2023年04月08日
    浏览(118)
  • 数字设计小思 - 谈谈Latch:组合与时序逻辑的桥梁

    本系列整理数字系统设计的相关知识体系架构,为了方便后续自己查阅与求职准备。对于FPGA和ASIC设计中,避免使用Latch(锁存器)一直是个绕不开的话题,本文结合网上的文章,并根据示例介绍如何在实际设计中避免Latch。 在网上看到一个帖子说了这样一个说辞,我觉得很不

    2024年02月16日
    浏览(35)
  • 数字逻辑---头歌实训作业---加法器设计(Logisim)

    第1关:半加器设计 如有任何不解或者想要答案代码,可在评论区喊话我哦,希望我的答案对你有帮助,点个关注再走吧,感谢!!! 本关卡最终答案:   任务描述 本关任务:利用在Logisim中的“组合逻辑分析”工具自动生成半加器电路。 相关知识 半加器电路是指对两个输

    2023年04月13日
    浏览(52)
  • 【上海大学数字逻辑实验报告】七、中规模元件及综合设计

    掌握中规模时序元件的测试。 学会在Quartus II上设计序列发生器。 74LS161是四位可预置数二进制加计数器,采用16引脚双列直插式封装的中规模集成电路,其外形如下图所示: 其各引脚功能为: 异步复位输入端:RD 计数使能输入端:ET、EP 时钟输入端:CP 进位输出端:RCO 电源

    2024年02月04日
    浏览(46)
  • 数字逻辑---头歌实训作业---多路选择器设计与应用(Logisim)

    如有任何不解或者想要最终实验代码,可评论区喊话哦,希望我的答案对你有帮助,点个关注再走吧,感谢!!! 本关卡最终答案: 任务描述 本关任务:在Logisim中绘制2选1多路选择器,先在本地完成测试,体验数据选择的功能,然后在线完成测评。 相关知识 多路选择器又

    2024年02月08日
    浏览(115)
  • 【数字电路与系统】【北京航空航天大学】实验:时序逻辑设计——三色灯开关(二)、需求分析和系统设计

    本次实验(一)见博客:【数字电路与系统】【北京航空航天大学】实验:时序逻辑设计——三色灯开关(一)、实验指导书 说明 :本次实验的代码使用verilog编写,文章中为阅读方便,故采用matlab代码格式。 2.1、需求分析 本次实验要求设计一种通过操作开关的时间控制灯

    2024年04月26日
    浏览(46)
  • educoder数字逻辑实训:锁存器和触发器设计(Logisim)

    第1关:基本SR锁存器的设计 任务描述 本关任务:在Logisim中,构建由两个或非门构成的基本SR锁存器。 第2关:门控SR锁存器的设计  任务描述 本关任务:在Logisim中,在基本锁存器的基础上构建门控SR锁存器。 第3关:与非门构成的门控SR锁存器的设计  任务描述 本关任务:在

    2024年02月04日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包