【无标题】

写敏感事件列表时,组合电路,时序电路会有一个区别

组合电路和时序电路是数字电路中两种基本的电路类型,它们的主要区别在于电路中的逻辑元件如何连接。

  1. 组合电路

组合电路是一种只由逻辑门或其他逻辑元件构成的电路。这些逻辑元件的输出值只取决于其输入值,而不受过去输入值的影响。因此,组合电路中不存在任何反馈路径,也没有状态存储器。常见的组合电路包括加法器、多路选择器、解码器、编码器等。组合电路的输出只与其输入和当前状态有关,不受历史状态的影响。

  1. 时序电路

时序电路是一种有状态存储器的电路,通过将组合电路和存储器组合起来实现。时序电路的输出不仅取决于其当前输入,还取决于过去的输入或内部状态。时序电路的主要特征之一是具有存储能力,即可以记忆电路过去的状态,因此可以实现各种复杂的数字系统。时序电路中最常见的存储元件是触发器和寄存器,它们可以用于存储二进制数据。时序电路常被用于计数器、时钟、状态机等。

综上所述,组合电路和时序电路在逻辑元件的连接方式、是否具有存储器等方面存在明显的区别。组合电路仅由逻辑门和其他逻辑元件构成,输出只与输入和时刻有关;而时序电路引入了存储器元件,能够实现状态存储和历史信息的处理。

什么时候选择reg类型。什么时候用wire类型

无论对时序逻辑电路还是对组合逻辑电路进行描述。VerilogHDL要求在过程语句(initial和always)中,被赋值信号必须定义为“reg”类型

不同敏感事件列表会产生不同的电路形式。

语句块两种:串行:begin-end,并行:fork-join

串行语句:begin-end,

可以用在可综合电路中

fork-join语句:主要用在测试和仿真中

if(sel)二选一

三条语句(完全并行)

第一条:数据流描述的连续赋值语句

第二条:行为级建模,initial或者always进行电路设计

第三条:结构性建模

行为及建模中有begin-end(串行) 和fork-join

begin -end中有两条赋值语句。一条阻塞性,一条非阻塞型

到底用什么样的语句?

到底什么叫可综合,不可综合,为什么有些语句不能用在可综合电路中,只能用在测试仿真中

可综合,不可综合

在数字逻辑电路中,可综合电路(Synthesizable Circuit)是指可以通过设计软件自动综合成物理电路的电路。这种电路由一组标准元件(如门、触发器、多路选择器、寄存器等)构成,可以在硬件上进行实现。可综合电路通常采用硬件描述语言(HDL)进行设计,例如Verilog和VHDL。

不可综合电路(不可综合的电路)通常指那些不能被标准元件组合为可综合电路的电路,这些电路具有高度的定制性,并需要手工设计和优化。因此,对于这些电路,设计师需要对硬件结构和性能进行详细的分析和设计以确保正确的功能和快速的响应速度。

与可综合电路相比,不可综合电路更难设计、调试和维护,但它们也具有更高的灵活性和性能,能够满足某些应用的特定需求。

if(sel) out=a;

sel:select?选择,挑选

这段代码是一个简单的条件语句,其中 sel 是一个布尔类型的变量或表达式,表示条件是否成立。如果 sel 的值为真(即非零),则执行 out=a 语句,将 a 的值赋给变量 out

 

形成的电路:(这玩意怎么好像是从下往上,从右往左画的呢)

 门数比较:两部分

二选一数据选择器

两个比较器

二选一数据选择器是一种逻辑电路,具有两个输入和一个输出。通过对其中一个输入选择性地传递数据,从而实现对两个输入数据进行选择的功能。当选择信号为“0”时,第一个输入数据被传递到输出端口;当选择信号为“1”时,第二个输入数据被传递到输出端口。二选一数据选择器通常采用与门、或门和反相器等基本逻辑门组成,也可以使用多路选择器来实现。

比较器是一种电路,用于比较两个电压 或电流的大小。它们通常被用作模拟电路中的关键元素,以便检测电压的高低或两个不同信号之间的差异。比较器可用于许多应用,例如模拟信号处理、功率管理、自适应控制、电力电子和通信系统等领域中。

具体来说,比较器通常由比较器芯片和其它外部元器件(如参考电压源)组成,可以根据需要配置成不同的比较器类型和操作模式。最简单的比较器只能判断两个输入信号的大小关系,并输出一个二进制的高低信号。高低信号的数值取决于比较器的阈值电平、增益和偏移电压等参数。其他更复杂的比较器还可以包括可配置的参考电压、多通道输入和带有触发器或计数器的数字输出等功能。

条件赋值语句的写法

if语句只能在initial和always语句引导的语句块(begin-end中使用),模块的其他部分都不能使用。

if else

case语句

case语句应包含所有状态,如果未包含完全,那么缺省项必须写出来,否则将产生锁存器,这在同步时序电路设计中不允许

always @(sel) begin

        case (sel)

                1'b0: out = 1'b0;

                1'b1: out = 1'b1;

                default: out = 1'bx; // 添加缺省项,当 sel 不为 0 和 1 时,将 out 置为高阻态

        end case

end

在这个例子中,out 的值将根据 sel 的值进行设置。在 case 语句中,第一个分支处理 sel 值为 0 的情况,将 out 设为 0;第二个分支处理 sel 值为 1 的情况,将 out 设为 1;最后一个分支是缺省项,用于处理 sel 值既不是 0 也不是 1 的情况,将 out 置为高阻态(x)。

 

 什么是锁存器?

用于在不同的时钟信号下保持电路的状态

锁存器根据输入信号(或上一个锁存器的状态)来确定输出信号,并将其保存在内部元件中,直到下一个时钟边沿或其他控制信号到来,再将其输出到外部电路。
锁存器通常用于数字电路、计算机系统和其他时序电子电路中,例如存储器单元、寄存器、触发器等元件的设计和实现。

case:表征两种主要电路:描述组合电路的真值表,描述时序电路的有限状态机

for语句定时设计,计数设计,变量类型。一般不用

所有的可综合电路基本可以不用for语句

8位移位寄存器

采用赋值语句实现

 for语句实现

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值