![]() |
1
2
首先,默认分配仅在没有时钟存在的情况下防止锁存-即:组合逻辑。 在寄存器/触发器逻辑(在“if上升沿(时钟)”后面的代码)中,默认分配防止保持条件-这是寄存器逻辑的正常部分。“如果上升沿(时钟)”下的代码永远不会产生锁存。 奥托,你所拥有的我称之为身份分配:
身份分配不是默认分配,而是显式指定反馈。这些并不能阻止组合逻辑中的锁存。
请注意,对于流程中的变量声明,只有在详细说明流程时才会运行初始化—这是在时间开始时,而不是每次流程运行时:
这与每次调用时创建并初始化变量的子程序执行不同。 |
![]() |
2
1
这些线路都不是必需的:
他们什么也没做。在完全赋值和锁存中,逻辑推理只是一个组合逻辑问题。这是(同步)顺序逻辑。您不必担心使用(同步)顺序逻辑完成赋值。
为什么会这样?好吧,在组合逻辑的情况下,如果你没有完全赋值,就会有一些输入的组合,它会导致一个路径,在这个路径中,进程的输出(由它驱动的信号)不会被赋值。任何信号都将保持其值,直到分配新值。因此,在不完全赋值的情况下,结果电路必须记住(存储)该输出的状态。因此,将合成某种能存储信息的电路。这不会是一个触发器,因为没有时钟,没有
但是,在(同步)时序电路中,您已经有了存储器。触发器可以看作是1位存储器。因此,您不必担心(同步)顺序过程中的完整赋值。您期望得到的电路能够存储东西。 |
![]() |
3
1
在这种情况下
作为一个相关的注释,在一个连续的(有时钟的)过程中使用变量来保持状态通常是不好的编码方式,并且最好声明一个信号
|
![]() |
Ryan · 使用16位DSP的33*33位 7 年前 |
![]() |
elmakhloufi assaad · 用vhdl读取二进制文件 7 年前 |
![]() |
CJC · VHDL:使用聚合其他对象为多个数据类型赋值 7 年前 |
|
Koli · 如何使用VHDL在组合逻辑中并发执行语句? 7 年前 |
![]() |
Andreea Dumitru · PIC24的签名扩展指令[关闭] 7 年前 |
![]() |
Wad · VHDL块和保护输入-这段代码做什么? 7 年前 |
![]() |
Seung Jin Lee · 连接到多个驱动程序或同步描述错误的问题 7 年前 |
|
v4ttel · VHDL:除法和十进制表示法 7 年前 |