代码拉取完成,页面将自动刷新
module foo (
input clk,
input reset,
input head,
input tail,
input valid
);
parameter STATE_IDLE = 2'b00,
STATE_HEAD = 2'b01,
STATE_DATA = 2'b10,
STATE_TAIL = 2'b11;
reg [1:0] state;
reg [1:0] next_state;
always @(posedge clock)
state <= reset ? STATE_IDLE : next_state;
(* covered_fsm, channel, is="state", os="next_state",
trans="STATE_IDLE->STATE_IDLE",
trans="STATE_IDLE->STATE_HEAD",
trans="STATE_HEAD->STATE_DATA",
trans="STATE_HEAD->STATE_TAIL",
trans="STATE_DATA->STATE_DATA",
trans="STATE_DATA->STATE_TAIL",
trans="STATE_TAIL->STATE_HEAD",
trans="STATE_TAIL->STATE_IDLE" *)
always @(reset or state or head or valid or tail)
begin
case( state )
STATE_IDLE: next_state = (valid & head) ?
STATE_HEAD : STATE_IDLE;
STATE_HEAD: next_state = (valid & tail) ?
STATE_TAIL : STATE_DATA;
STATE_DATA: next_state = (valid & tail) ?
STATE_TAIL : STATE_DATA;
STATE_TAIL: next_state = (valid & head) ?
STATE_HEAD : STATE_IDLE;
endcase
end
endmodule
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。