将内部信号连接到MyHDL模块中的输出端口

时间:2014-03-22 14:49:36

标签: myhdl

考虑以下示例(一个简单的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_count函数中直接递增count,但这会转换为生成的VHDL模块中的inout端口,这是我不想要的。

1 个答案:

答案 0 :(得分:3)

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

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

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