0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

m序列的verilog實(shí)現(xiàn)以及使能信號(hào)解決跨時(shí)終域問(wèn)題

冬至子 ? 來(lái)源:Bug記錄 ? 作者:woodfan ? 2023-06-16 15:12 ? 次閱讀

根據(jù)《通信原理》一書可知,m序列是最長(zhǎng)線性反饋移位寄存器的簡(jiǎn)稱,它產(chǎn)生的偽隨機(jī)序列的周期與其反饋移存器級(jí)數(shù)有關(guān);

m序列的屬性有很多,比如:

  1. 周期性,它的周期與它的反饋寄存器的級(jí)數(shù)有關(guān),周期為2的級(jí)數(shù)N次方-1,比如級(jí)數(shù)為4,則周期為2^4-1,即15;
  2. 均衡性,一個(gè)周期內(nèi)'1'的個(gè)數(shù)比'0'多一個(gè);

假設(shè)一個(gè)4級(jí)m序列的初始狀態(tài)為(a3,a2,a1,a0) = (1,0,0,0),特征多項(xiàng)式為23;

移位一次,a3與a0模2相加產(chǎn)生新的輸入a4=1^0 = 1,則新的狀態(tài)為(a3,a2,a1,a0) = (1,1,0,0),輸出為0;

依次移位15次后又回到初始狀態(tài)(1,0,0,0)。所以4級(jí)反饋移存器的周期為15。

圖片

從書上拍下的圖 圖1

圖片

從書上拍下的m序列框架圖 圖2

從圖2可以清晰的看出m序列的框架原理,只需要N位寄存器,并整體左移/右移,不斷地做異或運(yùn)算,產(chǎn)生新的值,;

以圖1為例,使用特征多項(xiàng)式23,也就是'010 011',原始狀態(tài)為'1000';參照?qǐng)D2的框照?qǐng)D,可以知道n = 4, c1 = c0 = c4 = 1, c2 = c3 = 0;

m序列的實(shí)現(xiàn)大致如下:

圖片

圖3 m序列產(chǎn)生always塊

可以看到,當(dāng)en為高的時(shí)候,data_count會(huì)更新相應(yīng)的值,同時(shí)data_out會(huì)產(chǎn)生新的輸出值;

en信號(hào)在這里作為一個(gè)使能信號(hào),它的作用是為了解決高速時(shí)鐘下低速運(yùn)行的問(wèn)題;

以m序列的產(chǎn)生為例,假設(shè)需要產(chǎn)生符號(hào)速率1Mbps的偽隨機(jī)序列,而FPGA的晶振為50MHz,而初學(xué)者為了在50MHz下按照1MHz的頻率運(yùn)行,通常會(huì)用兩種方法:

  1. 使用各種分頻的方法將50MHz分頻出1MHz;
  2. 使用PLL等IP核將50MHz輸入之后鎖定輸出1MHz;

而這兩種方法都會(huì)產(chǎn)生兩種時(shí)鐘域(1MHz,50MHz),兩個(gè)時(shí)鐘域之間的數(shù)據(jù)通信通常又會(huì)牽扯到跨時(shí)鐘域同步,亞穩(wěn)態(tài)等問(wèn)題;

那么有沒(méi)有一種方法能夠在50MHz下按照1MHz的頻率運(yùn)行?有,使用使能信號(hào)控制頻率運(yùn)行。

使能信號(hào)的作用就相當(dāng)于一個(gè)定時(shí)器鬧鐘,定時(shí)會(huì)拉高一次,提醒電路該運(yùn)行一次了,然后電路進(jìn)入空閑狀態(tài)等待下一次使能信號(hào)拉高;

這么做的好處有以下幾點(diǎn):

  1. 減少了其他的時(shí)鐘,F(xiàn)PGA設(shè)計(jì)需要遵循盡可能少的時(shí)鐘域原則;異步時(shí)鐘域之間的信號(hào)同步,亞穩(wěn)態(tài)問(wèn)題都可以避免;
  2. 降低了設(shè)計(jì)難度,不需要使用IP核,不需要考慮跨時(shí)鐘域的處理;
  3. 便于FPGA實(shí)現(xiàn),因?yàn)镕PGA內(nèi)部的寄存器本來(lái)就有使能en端,實(shí)現(xiàn)起來(lái)方便;

使能信號(hào)的產(chǎn)生原理也很簡(jiǎn)單,使用計(jì)數(shù)器不斷地計(jì)數(shù),同時(shí)使能信號(hào)保持低電平;當(dāng)計(jì)數(shù)到固定值時(shí),使能信號(hào)拉高,計(jì)數(shù)器歸零;

設(shè)計(jì)內(nèi)容如下:

圖片

圖3

這里INTERVAL是一個(gè)常量,可以在實(shí)例化的時(shí)候修改這個(gè)常量值;

其實(shí)這個(gè)常量值可以設(shè)為輸入端口,這樣可以在運(yùn)行的過(guò)程中在線修改使能信號(hào)的周期,更為方便;

最后的VCS仿真圖如下:

圖片

圖4 仿真圖

得出來(lái)的數(shù)字與圖1完全對(duì)應(yīng),仿真成功!

總結(jié):

  1. m序列實(shí)現(xiàn)原理較為簡(jiǎn)單,看圖2的框圖,通過(guò)這個(gè)框圖實(shí)現(xiàn)verilog,進(jìn)而實(shí)現(xiàn)相關(guān)的數(shù)字電路;
  2. 為了避免跨時(shí)鐘域問(wèn)題,在高速時(shí)鐘下想要低速運(yùn)行時(shí),可以使用使能信號(hào)降低電路的運(yùn)行頻率,避免跨時(shí)鐘域問(wèn)題,好處可以參見(jiàn)上面的內(nèi)容;
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA設(shè)計(jì)
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

    26452
  • 移位寄存器
    +關(guān)注

    關(guān)注

    2

    文章

    258

    瀏覽量

    22199
  • BPSK
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    22901
  • PLL電路
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    6379
  • Verilog語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8196
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    時(shí)鐘控制信號(hào)傳輸設(shè)計(jì)方案

    clk2的時(shí)鐘。當(dāng)clk1比clk2的頻率高時(shí),則稱模塊1(相對(duì)于模塊2)為快時(shí)鐘,而模塊2位為慢時(shí)鐘。根據(jù)clk1和clk2是不是同步時(shí)鐘,可以將上面的時(shí)鐘
    發(fā)表于 10-16 15:47 ?1120次閱讀
    <b class='flag-5'>跨</b>時(shí)鐘<b class='flag-5'>域</b>控制<b class='flag-5'>信號(hào)</b>傳輸設(shè)計(jì)方案

    關(guān)于時(shí)鐘信號(hào)的處理方法

    我在知乎看到了多bit信號(hào)時(shí)鐘的問(wèn)題,于是整理了一下自己對(duì)于時(shí)鐘信號(hào)的處理方法。
    的頭像 發(fā)表于 10-09 10:44 ?5835次閱讀

    quartus仿真雙口RAM 實(shí)現(xiàn)時(shí)鐘通信

    雙口RAM如何實(shí)現(xiàn)時(shí)鐘通信啊?怎么在quartus ii仿真???
    發(fā)表于 05-02 21:51

    ajax如何克服

    如何克服ajax
    發(fā)表于 04-30 13:25

    怎么實(shí)現(xiàn)m序列信號(hào)發(fā)生器的設(shè)計(jì)?

    m序列信號(hào)發(fā)生器由那幾部分組成?怎么實(shí)現(xiàn)m序列信號(hào)發(fā)
    發(fā)表于 05-10 06:09

    FPGA時(shí)鐘處理簡(jiǎn)介

    (10)FPGA時(shí)鐘處理1.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)FPGA時(shí)鐘處理5)結(jié)語(yǔ)1.2 FPG
    發(fā)表于 02-23 07:47

    看看Stream信號(hào)里是如何做時(shí)鐘握手的

    popArea里stream.m2sPipe,這個(gè)版本效率相較于前者,略低一些:StreamFifoCC這個(gè)就沒(méi)有什么好說(shuō)的了,通過(guò)fifo來(lái)實(shí)現(xiàn)stream信號(hào)時(shí)鐘
    發(fā)表于 07-07 17:25

    FPGA電路實(shí)現(xiàn)m序列及應(yīng)用

    ; 根據(jù)本原多項(xiàng)式,確定C0至Cn的取值,在圖4找到對(duì)應(yīng)的所有反饋支路; 根據(jù)反饋支路寫出針對(duì)最高位的反饋表達(dá)式。 例如,在構(gòu)建一個(gè)級(jí)數(shù)n=8的m序列時(shí): m序列
    發(fā)表于 11-06 17:03

    時(shí)鐘信號(hào)的幾種同步方法研究

    時(shí)鐘信號(hào)的同步方法應(yīng)根據(jù)源時(shí)鐘與目標(biāo)時(shí)鐘的相位關(guān)系、該信號(hào)的時(shí)間寬度和多個(gè)時(shí)鐘
    發(fā)表于 05-09 15:21 ?63次下載
    <b class='flag-5'>跨</b>時(shí)鐘<b class='flag-5'>域</b><b class='flag-5'>信號(hào)</b>的幾種同步方法研究

    使用Matlab和Verilog實(shí)現(xiàn)fibonacci序列包括源代碼和testbench

    使用Matlab和Verilog實(shí)現(xiàn)fibonacci序列包括源代碼和testbench(電源技術(shù)論壇app)-使用Matlab和Verilog實(shí)現(xiàn)
    發(fā)表于 09-16 14:41 ?13次下載
    使用Matlab和<b class='flag-5'>Verilog</b><b class='flag-5'>實(shí)現(xiàn)</b>fibonacci<b class='flag-5'>序列</b>包括源代碼和testbench

    基于FPGA的時(shí)鐘信號(hào)處理——MCU

    問(wèn)題,不過(guò)請(qǐng)注意,今后的這些關(guān)于異步信號(hào)處理的文 章里將會(huì)重點(diǎn)從工程實(shí)踐的角度出發(fā),以一些特權(quán)同學(xué)遇到過(guò)的典型案例的設(shè)計(jì)為依托,從代碼的角度來(lái)剖析一些特權(quán)同學(xué)認(rèn)為經(jīng)典的時(shí)鐘信號(hào)處理
    發(fā)表于 11-01 16:24 ?11次下載
    基于FPGA的<b class='flag-5'>跨</b>時(shí)鐘<b class='flag-5'>域</b><b class='flag-5'>信號(hào)</b>處理——MCU

    單位寬信號(hào)如何時(shí)鐘

    單位寬(Single bit)信號(hào)即該信號(hào)的位寬為1,通??刂?b class='flag-5'>信號(hào)居多。對(duì)于此類信號(hào),如需時(shí)鐘
    的頭像 發(fā)表于 04-13 09:11 ?1238次閱讀

    時(shí)鐘電路設(shè)計(jì):多位寬數(shù)據(jù)通過(guò)FIFO時(shí)鐘

    FIFO是實(shí)現(xiàn)多位寬數(shù)據(jù)的異步時(shí)鐘操作的常用方法,相比于握手方式,F(xiàn)IFO一方面允許發(fā)送端在每個(gè)時(shí)鐘周期都發(fā)送數(shù)據(jù),另一方面還可以對(duì)數(shù)據(jù)進(jìn)行緩存。需要注意的是對(duì)FIFO控制信號(hào)的管
    的頭像 發(fā)表于 05-11 14:01 ?2802次閱讀
    <b class='flag-5'>跨</b>時(shí)鐘<b class='flag-5'>域</b>電路設(shè)計(jì):多位寬數(shù)據(jù)通過(guò)FIFO<b class='flag-5'>跨</b>時(shí)鐘<b class='flag-5'>域</b>

    時(shí)鐘電路設(shè)計(jì)總結(jié)

    時(shí)鐘操作包括同步時(shí)鐘操作和異步時(shí)鐘操作。
    的頭像 發(fā)表于 05-18 09:18 ?674次閱讀
    <b class='flag-5'>跨</b>時(shí)鐘<b class='flag-5'>域</b>電路設(shè)計(jì)總結(jié)

    時(shí)鐘電路設(shè)計(jì):?jiǎn)挝粚?b class='flag-5'>信號(hào)如何時(shí)鐘

    單位寬(Single bit)信號(hào)即該信號(hào)的位寬為1,通??刂?b class='flag-5'>信號(hào)居多。對(duì)于此類信號(hào),如需時(shí)鐘
    的頭像 發(fā)表于 08-16 09:53 ?1145次閱讀
    <b class='flag-5'>跨</b>時(shí)鐘<b class='flag-5'>域</b>電路設(shè)計(jì):?jiǎn)挝粚?b class='flag-5'>信號(hào)</b>如何<b class='flag-5'>跨</b>時(shí)鐘<b class='flag-5'>域</b>