请教高手,小弟刚学写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 跳转至页
回复
| 有奖活动 | |
|---|---|
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
| 送您一块开发板,2025年“我要开发板活动”又开始了! | |
我要赚赏金打赏帖 |
|
|---|---|
| Chaos-nano:专为低资源单片机设计的轻量级协作式异步操作系统(ATMEGA328P轻量级操作系统)—— 详细介绍被打赏¥16元 | |
| FPGA配置被打赏¥10元 | |
| Chaos-nano协作式异步操作系统:赋能MicrochipAVR8位单片机的革新之路被打赏¥15元 | |
| 基于esp32开发时串口工具的注意点被打赏¥24元 | |
| 基于FireBeetle2ESP32-C5开发板的舵机控制被打赏¥20元 | |
| 【分享开发笔记,赚取电动螺丝刀】MAX78000开发板制作的电子相册被打赏¥32元 | |
| 基于FireBeetle2ESP32-C5开发板的超声波测距及显示被打赏¥21元 | |
| FireBeetle2ESP32-C5上RTC电子时钟的实现被打赏¥25元 | |
| 【分享开发笔记,赚取电动螺丝刀】MAX78000开发板读取SD卡被打赏¥23元 | |
| 【S32K3XX】Standby RAM 重启后数据异常问题调查被打赏¥38元 | |
我要赚赏金
