1、邊沿檢測(實現對訊號上公升沿或下降沿進行檢測)
//上公升沿檢測
`timescale 1ns/1ps
module edge_detect(
//system signals
input clk ,
input rst_n ,
input edge_signal ,
output pulse
);reg edge_reg0;
reg edge_reg1;
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
edge_reg0 <= 1'b0;
edge_reg1 <= 1'b0;
endelse begin
edge_reg0 <= edge_signal;
edge_reg1 <= edge_reg0;
endendassign pulse = ((~edge_reg1)&edge_reg0)?1'b1:1'b0;
endmodule
2、幀頭檢測(在通訊中的幀同步中有應用)
題目描述:幀頭frame_head來脈衝同時data_in會來資料,連續三次的資料都是8'h33時就輸出乙個脈衝。
`timescale 1ns/1ps
module frame_detect (
//system signals
input clk ,
input rst_n ,
input frame_head ,
input [7:0]data_in ,
output pulse
);reg out;
reg [1:0] state;
reg pulse_f;
integer s0=0;
integer s1=1;
integer s2=2;
integer s3=3;
//outputs
always @ (state)
begin
case (state)
s0:pulse_f = 1'b0;
s1:pulse_f = 1'b0;
s2:pulse_f = 1'b0;
s3:pulse_f = 1'b1;
default:
pulse_f = pulse_f;
endcase
end//states
always @ (posedge clk or negedge rst_n)
if(!rst_n)begin
state <= s0;
endelse if(frame_head)begin
case (state)
s0:begin
if(data_in == 8'h33)
state <= s1;
else
state <= s0;
ends1:
begin
if(data_in == 8'h33)
state <= s2;
else
state <= s0;
ends2:
begin
if(data_in == 8'h33)
state <= s3;
else
state <= s0;
ends3:
begin
if(data_in == 8'h33)
state <= s3;
else
state <= s0;
enddefault:
begin
state <= state;
endendcase
endassign pulse = pulse_f;
endmodule
數字ic筆試面試 題目彙總
1 fpga資源 問你用的哪些fpga,你用的那款fpga的dsp片數,佔了多少資源,響應時間多少 2 專案相關 讓你畫專案的結構框圖,系統框架 3 濾波器設計 4 fpga裡面的slice,為什麼要用ram,資源優化,時序約束,建立時間,chipscope除錯時,取樣率的設定。5 axi協議,問u...
數字IC筆試題(6)
題 使用2 1mux設計inv and or nand nor。即取反,與,或,與非,非或 mux是能夠根據需要將其中任意一路選出來的電路,又稱資料選擇器。設計inv 使用mxu設計inv,需要將s1端接 0 將s0端接 1 設計and 使用mxu設計and,需要將s1端接a,將s0端接 0 設計o...
筆試面試題二
1 c字串是以 0 字元作為結束標誌的 char p abcde 0fghjik 0 printf d n strlen p 5 a b c d e char acnew 20 0 0 printf d n strlen acnew 2 和0 2 建構函式和虛析構函式 include stdafx....