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

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

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

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

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