可以在 VHDL 中创建字典类型数据结构



本质上我想做的是,我将有一个std_logic_vector进入我的子模块,并且基于该向量的前 8 位,我想做某些事情。

本质上这是一个操作码。但是,仅将其输入 ALU 是行不通的,因为我有可变长度的指令,还有周期。

例如,我必须将不同的字节作为跳转指令,一个需要 3 个周期,另一个需要 4 个周期。

我想要一种方法来查看输入向量的第一个字节,并准确查找指令是什么,以便我可以设置与所述指令相关的不同值。

本质上是字典,或具有多个答案的LUT。

因此,例如,如果第一个字节是 0x54我想抬头看看这是一个跳跃,需要 4 个周期,它是一个直接地址,指令的总长度是 6 个字节。

有没有办法使用字典类型结构或LUT来做到这一点?

我尝试合并的指令集是 65C816,如果有帮助的话。

当密钥很小时,例如在本例中只有 8 位,则可以直接使用该密钥作为内存的地址,然后使用查找所需的任何结果初始化内存。 该查找只需要 1 个周期,并且实现起来非常简单。

对于无法映射到内存查找的长密钥,需要制作复杂的查找机,例如基于密钥的哈希值和密钥匹配的最终验证。 这是一个更大的设计,具有更长的延迟。

最新更新