请教高手,小弟刚学写FPGA代码,最近要做一个低速率的误码仪,要求能与老外的误码仪互换(RAD 公司的LBT误码仪),LBT误码仪说明书上说能与满足ITU V.52标准(该标准已经被ITU O.150替代)的设备兼容,我需要在FPGA里面产生和LBT误码仪相同的m序列,长度是511.
------------------------------------这个是ITU标准上说的-----------------------------------
4.1 511-bit pseudo-random test pattern
This pattern is primarily intended for error measurements on data circuits at bit rates up to 14 400 bit/s (see
Recommendation O.153).
The pattern may be generated in a nine-stage shift register whose 5th and 9th stage outputs are added in a
modulo-two addition stage, and the result is fed back to the input of the first stage. The pattern begins with the first ONE
of 9 consecutive ONEs.
Number of shift register stages 9
Length of pseudo-random sequence 2*9-1= 511 bits (2的9次方减1)
Longest sequence of ZEROs 8 (non-inverted signal)
--------------------------------------------------------------------------------------------
按照上面的标准,我理解的该m序列的本原多项式X*9+X*5+1(X的9次方+X的5次方+1),
---------------------------------我用VHDL写的代码的一个片段---------------------------------------
.....
signal m_code_out : std_logic;
signal fdbk : std_logic;
signal shift_out : std_logic_vector(8 downto 0);
.....
process(clk)
begin
if rising_edge(clk) then
if (reset = '0') then
shift_out <= (others => '1');------初始状态全1
fdbk <= shift_out(8) xor shift_out(4);
else
m_code_out <= shift_out(8);-----最高位移位输出-----(这是我想要的n=9,长度为511的m序列)
shift_out(8 downto 1) <= shift_out(7 downto 0);
fdbk <= shift_out(8) xor shift_out(4);-----第5位和第9位模2加
shift_out(0) <= fdbk;-----第5位和第9位模2加的值作为新的输入
end if;
end if;
end process;
共4条
1/1 1 跳转至页


3楼
多谢版主
昨天研究了一下,似乎找到问题了,能通过,不知道是不是这个问题
把 fdbk <= shift_out(8) xor shift_out(4);这句放在process外面就可以呢
昨天研究了一下,似乎找到问题了,能通过,不知道是不是这个问题
把 fdbk <= shift_out(8) xor shift_out(4);这句放在process外面就可以呢

4楼
确实应该放在外面才对,因为你之前的程序中用的非阻塞赋值语句(<=),而不是阻塞赋值(:=),前者会综合成一级寄存器,在m序列产生器的结构中,其反馈是直接反馈的,没有延迟,所以你也可以就放在process内,但要改为变量型,用阻塞赋值语句实现:fdbk := shift_out(8) xor shift_out(4);
共4条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
嵌入式LinuxC语言程序调试和宏使用技巧被打赏50分 | |
让代码中包含最新的编译时间信息被打赏50分 | |
rtthread硬件加密--2crc加密分析被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】mcxa156使用低功耗定时器适配硬件RTC框架被打赏26分 | |
【STM32F769】AI之与本地deepseek对接被打赏50分 | |
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏100分 | |
我想要一部加热台+多合一调试工具被打赏18分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 |