2

考虑以下示例(一个简单的 8 位计数器),是否有更简单的方法将内部s_count信号连接到o_count端口?

def counter(i_clk, i_reset, o_count):

    """ A free-running 8-bit counter with a synchronous reset """

    s_count = Signal(intbv(0)[8:])

    @always(i_clk.posedge)
    def count():
        if i_reset == 1:
            s_count.next = 0
        else:        
            s_count.next = s_count + 1

    @always_comb
    def outputs():
        o_count.next = s_count        

    return count, outputs

当然,我可以直接o_countcount函数中递增,但这会转换为inout生成的 VHDL 模块中的一个端口,这是我不想要的。

4

1 回答 1

3

我怀疑直接增加 o_count 是一个可以接受的解决方案。

实际上,它转换为输入输出,因为您无法读取 VHDL 中的输出端口。

但是,只有当您将此模块转换为顶级模块时才会发生这种情况。然而,这很可能是一个小子模块。在这种情况下,层次结构被展平,o_count 将是一个内部信号。

于 2014-03-24T08:47:27.480 回答