欢迎关注个人公众号摸鱼范式
前期准备了两个项目,一个是集创赛,一个是复微杯的,面试中主要就是在讨论这两个项目内容。
投递的岗位都是数字IC设计与验证,我的简历偏向验证。
module det (
input clk, // Clock
input rst_n, // Asynchronous reset active low
input frame_head,
input din,
output detect
);
wire [7:0] din;
reg [1:0] cnt;
reg frame_head_ff;
reg detect_ff;
reg [1:0] state, state_next;
always@(posedge clk or negedge rst_n) begin : proc_state
if(~rst_n) begin
state <= 0;
end else begin
state <= state_next;
end
end
always_comb begin : proc_state_next
state_next = state;
if (frame_head) begin
case (state)
0 : state_next = (din == 8‘h23)?2‘d1:2‘d0;
1 : state_next = (din == 8‘h23)?2‘d2:2‘d0;
2 : state_next = (din == 8‘h23)?2‘d3:2‘d0;
3 : state_next = (din == 8‘h23)?2‘d3:2‘d0;
default : state_next = 2‘d0;
endcase
end
end
always @(posedge clk or negedge rst_n) begin : proc_frame_head_ff
if(~rst_n) begin
frame_head_ff <= 0;
end else begin
frame_head_ff <= frame_head;
end
end
always @(posedge clk or negedge rst_n) begin : proc_detect_ff
if(~rst_n) begin
detect_ff <= 0;
end else begin
detect_ff <= frame_head_ff&&(state_next==2‘d3);
end
end
assign detect = detect_ff;
endmodule
原文:https://www.cnblogs.com/icparadigm/p/12849425.html