模块中的function能否改写成always块?
时间:10-02
整理:3721RD
点击:
模块中有个function用于根据不同的输入来配置控制字寄存器cmd_data:

该function在模块内一个always块中被调用:

现要求改写该function,试过两种方法,
第一种是将function改成电平触发的always块:
always@(index or rx_freq_divider or rx_freq_integer...)
begin
case(index)
12'd0: cmd_data = {1'b1, 10'h000, 8'h42};
……
endcase
end
然后原调用直接改成cmd <= cmd_data;
第二种是把原function中的case块放到原调用处,case块中的cmd_data用cmd代替。
改完下板测试,这两种改法好像都造成接收机无法正常工作。请问怎么改才是正确的做法?谢谢!

该function在模块内一个always块中被调用:

现要求改写该function,试过两种方法,
第一种是将function改成电平触发的always块:
always@(index or rx_freq_divider or rx_freq_integer...)
begin
case(index)
12'd0: cmd_data = {1'b1, 10'h000, 8'h42};
……
endcase
end
然后原调用直接改成cmd <= cmd_data;
第二种是把原function中的case块放到原调用处,case块中的cmd_data用cmd代替。
改完下板测试,这两种改法好像都造成接收机无法正常工作。请问怎么改才是正确的做法?谢谢!
不能把这个function改成一个module
第一种改法,状态机增加一个状态,先把index输出,然后下一个状态再把cmd_data赋给cmd
