16 verilog基础语法-设计层次描述

本文介绍了Verilog HDL在电路设计中的三种描述层次:门级、行为级和混合层次描述。门级描述专注于基本电路元素,行为级描述则抽象出输入输出信号的行为,而混合层次描述结合两者。通过示例展示了如何用Verilog实现2选1MUX及一个sample_ff寄存器模块。文章强调了不同层次描述在构建复杂设计中的作用,并鼓励读者思考如何组合使用这些层次。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虚拟机:VMware-workstation-full-14.0.0.24051
环 境:ubuntu 18.04.1
应用工具:VCS(verilog compiled simulator,编译型代码仿真器)



一、学习内容

在这里插入图片描述


二、设计层次描述

(1)门级描述

在这里插入图片描述

  • 最直观的描述电路结构
  • 最底层的电路描述
  • 门声明语句:
    在这里插入图片描述在这里插入图片描述【例 1】门级描述2选1
    在这里插入图片描述
module MUX2x1(z, d0, d1, s);
	output z;
	input d0, d1, s;
	
	and u0 (t0, d0, sbar) ,
		u1(t1, d1, s);
	not u2 (sbar, s)or u3 (z, t0, t1);
endmodule
  • 有已有模块构成更层次的模块
    在这里插入图片描述
MUX2x1 mux2x1_0(z0,d0,d1,s0);

MUX2x1 mux2x1_0(
	.d0 (d0),
	.d1 (d1),
	.s (s0),
	.z (z0)
);

在这里插入图片描述

(2)行为级描述

  • 其抽象程度远高于结构描述,相当于高级编程语言
  • 描述设计实体时,无需知道电路结构,只需知道输入与输出信号的行为
module sample_ff(clk, rstn, din, dout);
	input clk, rstn;
	input [3:0] din;
	output [3:0] dout;
	
	reg [3:0] data;
	assign dout = data;
always @(posedge clk or negedge rstn) begin
	if(!rstn) begin
		data <= 4’b0;
	end 
	else begin
		data <= din;
	end
end
endmodule

(3)混合层次描述

  • 以上各种层次描述方式可以 任 意 混 合使用
  • 一个复杂电路的完整Verilog HDL模型是由 若 干 个Verilog HDL模块构成的,每一个模块又可以由 若 干 个 子 模 块构成。这些模块可以分别用不同抽 象 级 别的Verilog HDL描述,在一个模块中也可以有多种级别的描述
  • 利用Verilog HDL语言结构所提供的这种功能就可以构造模块间的清晰层次结构来描述极其复杂的大型设计。

三、思考和小结

(1)思考

  1. Verilog HDL中都有哪些设计层次描述?
  2. 半加器Verilog:用门级描述。
  3. 两个半加器verilog实现一个全加器

(2)小结

在这里插入图片描述


作者:xlinxdu
版权:本文版权归作者所有
转载:未经作者允许,禁止转载,转载必须保留此段声明,必须在文章中给出原文连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xlinxdu

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值