(2)在校核态,其VHDL语言描述如下
If(Clk''Event And Clk=''1'')Then
Case State Is
When S1=>If(Reg=Syn_code)Then //校核态
M:=M+1;
If(M=Max_m)Then
State:=S2;
M:=O;
End If;
Else
State:=S0;
M:=0;
End If;
(3)在同步态,其VHDL语言描述如下:
If(Clk''Event And Clk=''1'')Then
Case State Is
When S2=>If(Reg=Syn_code)Then //同步态
N:=0;
Else
N:=N+1;
If(N=Max_n)Then
State:=S0;
N:=Os
End If
End If
3 系统仿真
假定同步码为110100,帧长为14,前方保护为2帧,后方保护为3帧,输人数据Data为:
010 11010001010100 010 11010001010100 1010001010100 01010101010100 11010001010100 10000001010100 10000001010100 10000001010100 10
则输出Syn的仿真波形如图2所示。
由图2可以看出,系统刚开始时处于搜索态,当系统捕获到同步码时,即进入校核态;当系统连续2次捕获到同步码时,系统进入同步状态。在同步态,系统只有连续3次丢失帧同步码时才确认失步,重新进入搜索态。在具体应用中,可根据实际需要对程序中的同步码、帧长、前后方保护时间进行调整,使系统处于最佳工作状态。
4 结 语
由于VHDL对设计的描述具有相对独立性,因此设计者可以不懂硬件的结构,只需知道设计的目标。这种设计方法集设计、模拟、综合为一体的设计方法,能有效地缩短电路设计周期,减少可能发生的错误,降低了开发成本,在未来现代数字系统中将会起着越来越重要的作用。用VHDL来进行数字系统设计既方便又简单,还具有良好的可移植性和维护性,代表着现代数字系统设计的走向。 |