前言:對(duì)FPGA的板極調(diào)試,對(duì)于大部分的工程師都是一個(gè)比較麻煩的事。這樣子的事情在開發(fā)的初期階段尤其突顯。我就常常有這樣子的困擾,比如說,對(duì)于一個(gè)SDRAM,我希望從我的PC發(fā)送一個(gè)指令,可以使得FPGA對(duì)SDRAM進(jìn)行寫操作或者讀操作,對(duì)于我還不是很熟悉的芯片,雖然我拿到硬件,也熟讀了數(shù)據(jù)手冊(cè),但我還是希望可以實(shí)時(shí)配置它,驗(yàn)證它的功能。就這樣子,趁著這個(gè)機(jī)會(huì)設(shè)計(jì)與驗(yàn)證了基于RS232的wishbone控制器。
對(duì)于PC與FPGA的通信,首先想到的當(dāng)然是RS232了,即使說它的速度跟性能無法都跟其它的通信方式相比,但是,有兩點(diǎn)讓我們無法舍棄它:簡(jiǎn)單、穩(wěn)定。LX9 Microboard上邊的USB-UART更是使得RS232擺脫了DB9這樣龐大的接口器件以及使你不需要到處去找串口連接線,畢竟現(xiàn)在來說,找一個(gè)串口線比找一個(gè)USB線要困難n倍。對(duì)于FPGA內(nèi)部總線,我當(dāng)然是選擇了wishbone總線,相關(guān)的總線協(xié)議,可以參考資料:Combining WISHBONE interface signals.pdf 百度之即可。推薦中文介紹網(wǎng)頁:
http://www.shangshuwu.cn/index.php/OpenRisc_CPU%E7%9A%84Wishbone%E7%89%87%E4%B8%8A%E6%80%BB%E7%BA%BF
最推薦的方式當(dāng)然是:www.opencores.org 了。
一、控制器設(shè)計(jì)框圖:
二、發(fā)送接收方式
其中,每次發(fā)送數(shù)據(jù)之前,發(fā)送幾個(gè)數(shù)據(jù),表明是wishbone總線,我采用的方式是:
當(dāng)數(shù)據(jù)八位八位的接受了之后,使用狀態(tài)機(jī)提取地址以及數(shù)據(jù)即可。
三、仿真
仿真圖如下:使用uart的model往設(shè)計(jì)模塊寫入地址以及數(shù)據(jù)
32'h0001_0108 , 32'h0000_0041
32'h0001_01ff , 32'h0000_0001
32'h0001_0109 , 32'h0000_00d1
32'h0001_0103 , 32'h0000_0006
32'h0001_0109 , 32'h0000_00c0
32'h0000_0010 , 32'h0000_000E
32'h0000_0011 , 32'h0000_00E8
32'h0000_0012 , 32'h0000_00A8
32'h0000_0013 , 32'h0000_00C8
32'h0000_0014 , 32'h0000_00C6
32'h0000_0015 , 32'h0000_0005
32'h0000_0016 , 32'h0000_00c2
32'h0000_0017 , 32'h0000_0002
因?yàn)?a class="innerlink" href="http://ihrv.cn/tags/時(shí)間" title="時(shí)間" target="_blank">時(shí)間倉促,接收模塊還沒有怎么寫好,只是實(shí)現(xiàn)了從RS232到wishbone總線單向。
四、板極功能驗(yàn)證:
首先,當(dāng)然要調(diào)通串口啦。安裝USB-UART驅(qū)動(dòng)以及下載驅(qū)動(dòng),這個(gè)直接看開發(fā)板資料就可以了,寫的非常清楚明了。串口測(cè)試是否正常,我是是使用了我很久以前寫的兩個(gè)個(gè)VHDL文件,只有直接發(fā)送模塊,這些模塊,在網(wǎng)絡(luò)上應(yīng)該到處都是。然后分別在電腦串口軟件以及chipscope上觀察數(shù)據(jù)是否正確即可,這個(gè)大家應(yīng)該都蠻熟的了。
然后,把自己曾經(jīng)用到的IP放進(jìn)去。為了方便使用示波器觀察數(shù)據(jù),我把一個(gè)I2C模塊以及一個(gè)SPI配置的DAC ( TLV5626 )的模塊放進(jìn)去,然后輸出到保留引腳上。
下面是應(yīng)用仿真
建立工程以及綜合下載那些瑣碎事,就不在這里多扯了。
結(jié)果驗(yàn)證:
下面是示波器觀察I2C的結(jié)果:
可以對(duì)比仿真結(jié)果與示波器的觀察結(jié)果,是一致的。
總結(jié):最近忙的東西比較多,時(shí)間也比較有限,自己對(duì)嵌入式那一塊也不是很熟,所以感覺沒辦怎么用到這個(gè)板子比較高級(jí)的地方,其實(shí),如果可以做一個(gè)網(wǎng)口控制器的話,那就相當(dāng)?shù)?/span>high了。
DB
2011.8.24