《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > FPGA學(xué)習(xí)開(kāi)發(fā)筆記

FPGA學(xué)習(xí)開(kāi)發(fā)筆記

2015-10-15
關(guān)鍵詞: FPGA 筆記

  FPGA學(xué)習(xí)記錄
  1 always語(yǔ)句里面是邊沿觸發(fā),那么使用非阻塞性賦值<=;
  如果是狀態(tài)觸發(fā),那么使用阻塞性賦值=;
  2 ISE9在win7上可以運(yùn)行、仿真,但是沒(méi)有下載線的驅(qū)動(dòng),百度google也沒(méi)找到辦法,后來(lái)咨詢了賣FPGA下載線的,說(shuō)ISE10以上支持win7,于是下載了ISE13,這次安裝驅(qū)動(dòng)成功了。
  3 ISE13里面做仿真的時(shí)候,初值怎么設(shè)定?ise9中,是可以用鼠標(biāo)拖來(lái)拖去設(shè)定初值的,ise13里面,拖不動(dòng)了,官方解釋,從ise11.1開(kāi)始,ise不再支持test bench waveform,也就是不能在拖來(lái)拖去了,Xilinx建議使用對(duì)于新項(xiàng)目使用hdl test bench;后記,費(fèi)了好幾天勁,終于寫(xiě)成了一個(gè)VHDL test bench,可以用來(lái)仿真了。
  4 真正的FPGA的復(fù)位信號(hào)啥樣子?
  高低高
  5 ISE13里面,vhdl test bench 中,rst信號(hào)的寫(xiě)法
  process
  begin
  rst<='0';
  wait for 100 ns;
  rst<='1';
  wait for 5000 ms;
  end process;
  6 紅色颶風(fēng) RCII - SP3S400的時(shí)鐘信號(hào)很惡心,不像方波,像是正弦波
  7 為什么總是(posedge clk or negedge rst),其實(shí)(posedge clk)也可以?
  8 ise9.1里面, 聲明變量的時(shí)候不能直接賦值,好像也不對(duì),怎么改都不行,也不知出啥語(yǔ)法錯(cuò)誤了,還是換回13.1吧,昨晚13.1總也不好用,可能是因?yàn)闆](méi)有給clk和rst信號(hào)分配管腳的問(wèn)題,剛才試了一下, 果然好使了,就是因?yàn)闆](méi)有分配管腳,哇哈哈,困擾了好久了,總算搞定
  9 輸出變量改名后,記得在ucf(用戶約束文件)文件中把以前的變量和對(duì)應(yīng)管腳刪掉;后記,現(xiàn)在習(xí)慣于直接寫(xiě)UCF文件了,呵呵,更方便。
  10 always語(yǔ)句中,只能檢測(cè)輸入信號(hào)的上升沿或下降沿
  11 不要使用clk作為非系統(tǒng)時(shí)鐘變量名稱,否則在ise13中仿真時(shí)會(huì)自動(dòng)給定周期
  12 20110709今天實(shí)現(xiàn)了DA,本工程可以在自制FPGA+主板上,驅(qū)動(dòng)DA輸出一個(gè)鋸齒波,用示波器測(cè)得周期為100ms,DA輸入時(shí)鐘為80ns,輸出數(shù)據(jù)大概1.5us一個(gè),可以再提高;后記,做了一個(gè)DA模塊,支持的輸入時(shí)鐘為0~200M,很好用;
  13 ISE里面,頂層原理圖包含下面幾個(gè)verilog文件的方式,還有verilog文件下面包含幾個(gè)verilog文件的方式,有啥區(qū)別,哪種更好;后記,習(xí)慣于后者了。
  14 輸入時(shí)鐘是50Mhz時(shí),可以實(shí)現(xiàn)超過(guò)50M的主頻嗎,貌似可以,xilinx ->accocessory ->Core generator -> ;后記,可以的,使用DCM模塊;
  15 input信號(hào)是不是不需要用reg來(lái)聲明?。?br/>  16 三段式狀態(tài)機(jī)中,第二段也就是狀態(tài)轉(zhuǎn)移段的寫(xiě)法;后記,狀態(tài)轉(zhuǎn)移要使用阻塞性賦值"=",凡是要判斷狀態(tài)的變量,都要寫(xiě)進(jìn) always語(yǔ)句,例如 or drdypedge or flag or sqrt_rdy) begin
  17 為什么使用DCM,怎么使用DCM;后記Digital Clock Managers (DCMs)
  18 ISE13.1成功Generate Programming File,但是沒(méi)有BIT文件,原來(lái)是有bit文件而win7的搜索沒(méi)有找到,手動(dòng)找到了
  19 DA的時(shí)序很奇怪
  20 AD的輸入數(shù)字也很奇怪
  21 遇到一個(gè)奇怪的問(wèn)題,例化的程序里面,本來(lái)應(yīng)該在復(fù)位信號(hào)里面給狀態(tài)機(jī)賦初值,總共3個(gè)例化程序,有兩個(gè)可以賦初值,一個(gè)不行,一直是xxxxxxxxxxxxxxx ,找到問(wèn)題了,原來(lái)是低級(jí)錯(cuò)誤,時(shí)鐘寫(xiě)錯(cuò)了,應(yīng)該是clk_100M,寫(xiě)成了clk100M。
  22 寫(xiě)程序進(jìn)FPGA外部存儲(chǔ)器(本例中為xcf02s)的教程,網(wǎng)絡(luò)上沒(méi)有ISE13.1的;后記,自己蒙著找到了;
  23 2011/10/17實(shí)驗(yàn)證明,開(kāi)方是好用的
  24 verilog語(yǔ)言寫(xiě)完了,也好用,我想知道里面具體是什么電路實(shí)現(xiàn)的,有師弟說(shuō)是用查找表實(shí)現(xiàn)的,把所有可能的結(jié)果都算出來(lái),存起來(lái),有啥輸入就給相應(yīng)的輸出
  25 使用Xilinx IP核做39位數(shù)字開(kāi)方需要20個(gè)延時(shí),這是在pipelining在maximum的情況下,如果改成no pipelining,那么只需要2個(gè)周期的延時(shí)
  26 使用Xilinx IP核心做32位除法需要36個(gè)周期延時(shí),20位除法需要24個(gè)周期延時(shí),25位除法需要29個(gè)延時(shí)
  27 FPGA里面浮點(diǎn)數(shù)的定義、運(yùn)算是啥樣子呢,貌似很麻煩,算了,不做除法或者浮點(diǎn)數(shù)乘法了
  28 ISE13.1中,CORDIC IP核做開(kāi)放時(shí),如果輸入為40位無(wú)符號(hào)整數(shù),那么輸出為21位,應(yīng)該是20位才對(duì)啊,仿真驗(yàn)證了一下,輸入為40個(gè)1,或者說(shuō)10個(gè)F即FFFFFFFFFF時(shí),輸出為20個(gè)1,也就是20位,那么為啥要做成多一位呢?奇怪
  29 verilog里面,按位取反符號(hào)為"~",邏輯取反符號(hào)為"!"
  30 verilog里面是可以定義有符號(hào)數(shù)和無(wú)符號(hào)數(shù)的,所以不要糾結(jié)于補(bǔ)碼和原碼的問(wèn)題了

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。