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

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

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

FPGA學(xué)習(xí)系列:7. 串并轉(zhuǎn)換

FPGA學(xué)習(xí)交流 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-05-31 11:40 ? 次閱讀

設(shè)計(jì)背景:

Verilog語法中很多情況都用到了串并轉(zhuǎn)化的思想,旨在與提升運(yùn)算和芯片運(yùn)行的速度,串行轉(zhuǎn)并行已經(jīng)成為設(shè)計(jì)中不可缺少的一種思維。

設(shè)計(jì)原理:

本次的設(shè)計(jì)主設(shè)計(jì)一個(gè)8位的串并轉(zhuǎn)化,意思就是當(dāng)輸入8個(gè)數(shù)據(jù)的時(shí)候,我們把這8個(gè)串行數(shù)據(jù)轉(zhuǎn)化為8位的并行數(shù)據(jù)然后輸出出來。也就是需要一個(gè)8位的寄存器,來一個(gè)數(shù)據(jù)存到對(duì)應(yīng)的位上,然后輸出出來就完成了本次設(shè)計(jì)。

設(shè)計(jì)架構(gòu)圖:

image.png

設(shè)計(jì)代碼:

設(shè)計(jì)模塊

0modulestudy(clk,rst_n,data,data_out);//端口列表

1

2 inputclk,rst_n;//時(shí)鐘,復(fù)位輸入

3 inputdata;//輸入數(shù)據(jù)

4

5 outputreg[7:0]data_out;

6

7 reg[3:0]count;

8 reg[7:0]temp;

9

10 always@(posedgeclk)//時(shí)序邏輯

11 if(!rst_n)

12 begin

13 data_out <=0;

14 temp <=0;

15 count <=0;

16 end

17 elseif(count <8)//計(jì)數(shù)表示只接8個(gè)數(shù)據(jù)

18 begin

19 temp <={temp[6:0],data};//移位寄存器

20 count <=count +1'b1;

21 end

22 else

23 begin

24 data_out <=temp;//接到后輸出

25 end

26

27endmodule

測(cè)試模塊

0`timescale1ns/1ps//時(shí)標(biāo)

1

2moduletb();

3

4 regclk,rst_n;

5 regdata;

6

7 wire[7:0]data_out;

8

9 study study_dut(//設(shè)計(jì)例化

10 .clk(clk),

11 .rst_n(rst_n),

12 .data(data),

13 .data_out(data_out)

14 );

15

16 initialbegin

17 clk =1;

18 rst_n =0;//復(fù)位

19 data =0;

20 #200rst_n =1;//不復(fù)位

21 data =1;//模擬數(shù)據(jù)輸入

22 #20data =0;

23 #20data =1;

24 #20data =0;

25

26 #20data =0;

27 #20data =1;

28 #20data =0;

29 #20data =1;

30

31 #200$stop;

32 end

33

34 always#10clk =~clk;//模擬晶振時(shí)鐘

35

36endmodule

仿真:

image.png

在測(cè)試中模擬數(shù)據(jù)輸入時(shí)1010 0101,然后輸出是一個(gè)并行數(shù)據(jù),那么通過看仿真時(shí)序,清楚的看到輸出是8位的并行數(shù)據(jù),本次設(shè)計(jì)正確.

同樣大家可以自己推理設(shè)計(jì)出并轉(zhuǎn)串的邏輯電路來。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21573

    瀏覽量

    600654
  • 串并轉(zhuǎn)換
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    7811
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用其gearbox功能來實(shí)現(xiàn)不同的比率的并轉(zhuǎn)換功能

    在SelectIO簡(jiǎn)介連載一中介紹了其架構(gòu),本章會(huì)繼續(xù)介紹如何使用其gearbox功能來實(shí)現(xiàn)不同的比率的并轉(zhuǎn)換功能。7 Series FPGA中LVDS使用了ISERDESE2,SD
    發(fā)表于 08-02 08:03 ?3141次閱讀
    如何使用其gearbox功能來實(shí)現(xiàn)不同的比率的<b class='flag-5'>串</b><b class='flag-5'>并轉(zhuǎn)換</b>功能

    LVDS并轉(zhuǎn)換與并轉(zhuǎn)換設(shè)計(jì)

    并轉(zhuǎn)換與并轉(zhuǎn)換是高速數(shù)據(jù)流處理的重要技巧之一。其實(shí)現(xiàn)方法多種多樣,根據(jù)數(shù)據(jù)的順序和數(shù)量的不同要求,可以選用移位寄存器、雙口RAM(Dual RAM)、SRAM、SDRAM或者FIF
    的頭像 發(fā)表于 11-05 11:11 ?1955次閱讀
    LVDS<b class='flag-5'>串</b><b class='flag-5'>并轉(zhuǎn)換</b>與并<b class='flag-5'>串</b><b class='flag-5'>轉(zhuǎn)換</b>設(shè)計(jì)

    FPGA設(shè)計(jì)思想與技巧之并轉(zhuǎn)換和流水線操作

    本帖最后由 jiuri1989 于 2012-2-10 11:42 編輯 本系列討論的四種常用FPGA/CPLD設(shè)計(jì)思想與技巧:乒乓操作、并轉(zhuǎn)換、流水線操作、數(shù)據(jù)接口同步化,
    發(fā)表于 02-10 11:40

    并轉(zhuǎn)換74hc164

    并轉(zhuǎn)換74hc164{:9:}
    發(fā)表于 10-12 14:20

    1to8并轉(zhuǎn)換

    設(shè)計(jì)要求: (內(nèi)部提供50M時(shí)鐘)1.依據(jù)需求分析給出的要求,設(shè)計(jì)完成串口端(SCLK、DIO、CS)數(shù)據(jù)并轉(zhuǎn)換,并依據(jù)接收到的數(shù)據(jù)切換DIO信方向號(hào)。(當(dāng)DIO接收到讀指令時(shí),DIO為輸出,其余
    發(fā)表于 03-09 17:50

    FPGA并轉(zhuǎn)換實(shí)現(xiàn)問題

    各位大神是否能用400個(gè)以上I/O口的FPGA芯片,實(shí)現(xiàn)并轉(zhuǎn)換,一個(gè)串行RS232輸入,將輸入的50個(gè)字節(jié)的數(shù)據(jù)轉(zhuǎn)換控制 50個(gè)8位并行輸出。具體大概應(yīng)該怎么做
    發(fā)表于 07-08 17:19

    IO擴(kuò)展(并轉(zhuǎn)學(xué)習(xí)

    峰峰說學(xué)會(huì)IO擴(kuò)展(并轉(zhuǎn))還是蠻重要;接下來一起看下以下學(xué)習(xí)點(diǎn)哈~74HC165是8位并行輸入,串行
    發(fā)表于 12-06 06:54

    FPGA/并轉(zhuǎn)換的思想相關(guān)資料推薦

    (18)FPGA/并轉(zhuǎn)換的思想1.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)FPGA
    發(fā)表于 02-23 07:38

    并轉(zhuǎn)換VHDL代碼

    通過多通道-并轉(zhuǎn)換器將多個(gè)同步串行數(shù)據(jù)流轉(zhuǎn)換為并行數(shù)據(jù) xilinx提供 Synthesis  1. Launch synplify  2.
    發(fā)表于 05-20 11:30 ?515次下載

    84調(diào)制解調(diào)程序(包括并轉(zhuǎn)換,判決等等)

    84調(diào)制解調(diào)程序(包括并轉(zhuǎn)換,判決等等): fs=700000000;%樣頻率 f0=70000000;%載頻fd=5000000;n=400;a=[1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 1 0 1 0 0];%//////////
    發(fā)表于 11-28 11:48 ?29次下載

    并轉(zhuǎn)換 通過多通道-并轉(zhuǎn)換器將多個(gè)同步串行數(shù)據(jù)流轉(zhuǎn)換為并

    并轉(zhuǎn)換 通過多通道-并轉(zhuǎn)換器將多個(gè)同步串行數(shù)據(jù)流轉(zhuǎn)換為并行數(shù)據(jù)(源代碼)   ** Filenames and Descri
    發(fā)表于 06-14 09:24 ?50次下載

    基于FPGA的多路高速串并轉(zhuǎn)換器設(shè)計(jì)

    高速串并轉(zhuǎn)換器的設(shè)計(jì)是FPGA 設(shè)計(jì)的一個(gè)重要方面,傳統(tǒng)設(shè)計(jì)方法由于采用FPGA 的內(nèi)部邏輯資源來實(shí)現(xiàn),從而限制了并轉(zhuǎn)換的速度。該研究以網(wǎng)
    發(fā)表于 09-22 08:29 ?81次下載

    基于CPLD的并轉(zhuǎn)換和高速USB通信設(shè)計(jì)

    本內(nèi)容介紹了基于CPLD的并轉(zhuǎn)換和高速USB通信設(shè)計(jì)
    發(fā)表于 09-27 16:23 ?37次下載
    基于CPLD的<b class='flag-5'>串</b><b class='flag-5'>并轉(zhuǎn)換</b>和高速USB通信設(shè)計(jì)

    轉(zhuǎn)換并轉(zhuǎn)換

    轉(zhuǎn)換并轉(zhuǎn)換,有興趣的同學(xué)可以下載學(xué)習(xí)
    發(fā)表于 04-27 16:18 ?63次下載

    (18)FPGA/并轉(zhuǎn)換的思想

    (18)FPGA/并轉(zhuǎn)換的思想1.1 目錄1)目錄2)FPGA簡(jiǎn)介3)Verilog HDL簡(jiǎn)介4)FPGA
    發(fā)表于 12-29 19:40 ?2次下載
    (18)<b class='flag-5'>FPGA</b><b class='flag-5'>串</b>/<b class='flag-5'>并轉(zhuǎn)換</b>的思想