ch11.12.htm
来自「介绍asci设计的一本书」· HTM 代码 · 共 1,087 行 · 第 1/5 页
HTM
1,087 行
<TD><P CLASS="Table"><A NAME="pgfId=184372"></A>110</TD>
<TD><P CLASS="Table"><A NAME="pgfId=184374"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=184379"></A>0.0325 </TD></TR>
<TR>
<TD><P CLASS="Table"><A NAME="pgfId=184381"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=184386"></A>2 sin (6 π / 8) </TD>
<TD><P CLASS="Table"><A NAME="pgfId=184388"></A>1.41</TD>
<TD><P CLASS="Table"><A NAME="pgfId=184390"></A>2.00</TD>
<TD><P CLASS="Table"><A NAME="pgfId=184392"></A>100</TD>
<TD><P CLASS="Table"><A NAME="pgfId=184394"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=184399"></A>0.5 </TD></TR>
<TR>
<TD><P CLASS="Table"><A NAME="pgfId=184401"></A>7</TD>
<TD><P CLASS="Table"><A NAME="pgfId=184406"></A>2 sin (7 π / 8) </TD>
<TD><P CLASS="Table"><A NAME="pgfId=184408"></A>0.77</TD>
<TD><P CLASS="Table"><A NAME="pgfId=184410"></A>0.59</TD>
<TD><P CLASS="Table"><A NAME="pgfId=184412"></A>001</TD>
<TD><P CLASS="Table"><A NAME="pgfId=184414"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=184419"></A>-0.0325 </TD></TR>
</TABLE>
</P>
<PRE>
/******************************************************/
/* module viterbi_distances */
/******************************************************/
/* This module simulates the front end of a receiver. Normally the
received analog signal (with noise) is converted into a series of
distance measures from the known eight possible transmitted PSK
signals: s0,...,s7. We are not simulating the analog part or noise in
this version, so we just take the digitally encoded 3-bit signal, Y,
from the encoder and convert it directly to the distance measures.
d[N] is the distance from signal = N to signal = 0
d[N] = (2*sin(N*PI/8))**2 in 3-bit binary (on the scale 2=100)
Example: d[3] = 1.85**2 = 3.41 = 110
inN is the distance from signal = N to encoder signal.
Example: in3 is the distance from signal = 3 to encoder signal.
d[N] is the distance from signal = N to encoder signal = 0.
If encoder signal = J, shift the distances by 8-J positions.
Example: if signal = 2, in0 is d[6], in1 is D[7], in2 is D[0], etc. */
<B>module</B> viterbi_distances
(Y2N,Y1N,Y0N,clk,res,in0,in1,in2,in3,in4,in5,in6,in7);
<B>input</B> clk,res,Y2N,Y1N,Y0N; <B>output</B> in0,in1,in2,in3,in4,in5,in6,in7;
<B>reg</B> [2:0] J,in0,in1,in2,in3,in4,in5,in6,in7; <B>reg</B> [2:0] d [7:0];
<B>initial</B> <B>begin </B>d[0]='b000;d[1]='b001;d[2]='b100;d[3]='b110;
d[4]='b111;d[5]='b110;d[6]='b100;d[7]='b001; <B>end</B>
<B>always</B> @(Y2N <B>or</B> Y1N <B>or</B> Y0N) <B>begin</B>
J[0]=Y0N;J[1]=Y1N;J[2]=Y2N;
J=8-J;in0=d[J];J=J+1;in1=d[J];J=J+1;in2=d[J];J=J+1;in3=d[J];
J=J+1;in4=d[J];J=J+1;in5=d[J];J=J+1;in6=d[J];J=J+1;in7=d[J];
<B>end</B> <B>endmodule</B></PRE>
<P><P CLASS="Body"><A NAME="pgfId=148735"></A>As an example, Table 11.9
shows the distance measures for the transmitted encoder output sequence
Y<SUB CLASS="Subscript">n</SUB> = 1, 0, 5, 4, ... (repeated) corresponding
to an encoder input of X<SUB CLASS="Subscript">n</SUB> = 0, 1, 2, 3, ...
(repeated).</P>
<P><TABLE BORDER="1" CELLSPACING="2" CELLPADDING="2">
<TR>
<TD COLSPAN="13"><P CLASS="TableTitle"><A NAME="pgfId=148739"></A>TABLE 11.9 Receiver
distance measures for an example transmission sequence.</TD></TR>
<TR>
<TD><P><P CLASS="TableFirst"><A NAME="pgfId=148765"></A>Time</P>
<P><P CLASS="TableFirst"><A NAME="pgfId=148766"></A>ns</TD>
<TD><P><P CLASS="TableFirst"><A NAME="pgfId=148768"></A><B>Input </B></P>
<P><P CLASS="TableFirst"><A NAME="pgfId=148769"></A><B>Xn</B></TD>
<TD><P CLASS="TableFirst"><A NAME="pgfId=148771"></A>Output <B>Yn</B></TD>
<TD><P CLASS="TableFirst"><A NAME="pgfId=148773"></A><B>Present state</B></TD>
<TD><P CLASS="TableFirst"><A NAME="pgfId=148775"></A><B>Next state</B></TD>
<TD><P CLASS="TableFirst"><A NAME="pgfId=148777"></A>in0</TD>
<TD><P CLASS="TableFirst"><A NAME="pgfId=148779"></A>in1</TD>
<TD><P CLASS="TableFirst"><A NAME="pgfId=148781"></A>in2</TD>
<TD><P CLASS="TableFirst"><A NAME="pgfId=148783"></A>in3</TD>
<TD><P CLASS="TableFirst"><A NAME="pgfId=148785"></A>in4</TD>
<TD><P CLASS="TableFirst"><A NAME="pgfId=148787"></A>in5</TD>
<TD><P CLASS="TableFirst"><A NAME="pgfId=148789"></A>in6</TD>
<TD><P CLASS="TableFirst"><A NAME="pgfId=148791"></A>in7</TD></TR>
<TR>
<TD><P CLASS="TableLeft"><A NAME="pgfId=148793"></A>0</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148795"></A>3</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148797"></A>x</TD>
<TD><P CLASS="Table"><A NAME="pgfId=165292"></A>S<SUB CLASS="Subscript">?</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148801"></A>S<SUB CLASS="Subscript">?</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148803"></A>x</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148805"></A>x</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148807"></A>x</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148809"></A>x</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148811"></A>x</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148813"></A>x</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148815"></A>x</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148817"></A>x</TD></TR>
<TR>
<TD><P CLASS="TableLeft"><A NAME="pgfId=148819"></A>10</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148821"></A>3</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148823"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148825"></A>S<SUB CLASS="Subscript">0</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148827"></A>S<SUB CLASS="Subscript">1</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148829"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148831"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148833"></A>7</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148835"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148837"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148839"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148841"></A>0</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148843"></A>1</TD></TR>
<TR>
<TD><P CLASS="TableLeft"><A NAME="pgfId=148845"></A>50</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148847"></A>0</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148849"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148851"></A>S<SUB CLASS="Subscript">1</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148853"></A>S<SUB CLASS="Subscript">2</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148855"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148857"></A>0</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148859"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148861"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148863"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148865"></A>7</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148867"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148869"></A>4</TD></TR>
<TR>
<TD><P CLASS="TableLeft"><A NAME="pgfId=148871"></A>150</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148873"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148875"></A>0</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148877"></A>S<SUB CLASS="Subscript">2</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148879"></A>S<SUB CLASS="Subscript">1</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148881"></A>0</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148883"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148885"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148887"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148889"></A>7</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148891"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148893"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148895"></A>1</TD></TR>
<TR>
<TD><P CLASS="TableLeft"><A NAME="pgfId=148897"></A>250</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148899"></A>2</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148901"></A>5</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148903"></A>S<SUB CLASS="Subscript">1</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148905"></A>S<SUB CLASS="Subscript">2</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148907"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148909"></A>7</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148911"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148913"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148915"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148917"></A>0</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148919"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148921"></A>4</TD></TR>
<TR>
<TD><P CLASS="TableLeft"><A NAME="pgfId=148923"></A>350</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148925"></A>3</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148927"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148929"></A>S<SUB CLASS="Subscript">2</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148931"></A>S<SUB CLASS="Subscript">1</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148933"></A>7</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148935"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148937"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148939"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148941"></A>0</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148943"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148945"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148947"></A>6</TD></TR>
<TR>
<TD><P CLASS="TableLeft"><A NAME="pgfId=148949"></A>450</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148951"></A>0</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148953"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148955"></A>S<SUB CLASS="Subscript">1</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148957"></A>S<SUB CLASS="Subscript">2</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148959"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148961"></A>0</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148963"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148965"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148967"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148969"></A>7</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148971"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148973"></A>4</TD></TR>
<TR>
<TD><P CLASS="TableLeft"><A NAME="pgfId=148975"></A>550</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148977"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148979"></A>0</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148981"></A>S<SUB CLASS="Subscript">2</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148983"></A>S<SUB CLASS="Subscript">1</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=148985"></A>0</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148987"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148989"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148991"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148993"></A>7</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148995"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148997"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=148999"></A>1</TD></TR>
<TR>
<TD><P CLASS="TableLeft"><A NAME="pgfId=149001"></A>650</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149003"></A>2</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149005"></A>5</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149007"></A>S<SUB CLASS="Subscript">1</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=149009"></A>S<SUB CLASS="Subscript">2</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=149011"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149013"></A>7</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149015"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149017"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149019"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149021"></A>0</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149023"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149025"></A>4</TD></TR>
<TR>
<TD><P CLASS="TableLeft"><A NAME="pgfId=149027"></A>750</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149029"></A>3</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149031"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149033"></A>S<SUB CLASS="Subscript">2</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=149035"></A>S<SUB CLASS="Subscript">1</SUB></TD>
<TD><P CLASS="Table"><A NAME="pgfId=149037"></A>7</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149039"></A>6</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149041"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149043"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149045"></A>0</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149047"></A>1</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149049"></A>4</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149051"></A>6</TD></TR>
<TR>
<TD><P CLASS="TableLeft"><A NAME="pgfId=149053"></A>850</TD>
<TD><P CLASS="Table"><A NAME="pgfId=149055"></A>0</TD>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?