Time of Update: 2018-12-07
講過了獨立按鍵檢測,理所當然應該講講FPGA中矩陣鍵盤的應用了。這個思維和電路在FPGA中有所不同,在此,在此做詳細解釋,Bingo用自己設計的成熟的代碼作為案例,希望對你有用。一、FPGA矩陣鍵盤電路圖在FPGA中的電路,與單片機雷同,如下所示:在上電預設情況下,L[3:0]
Time of Update: 2018-12-07
ldr r0, _start adr r0, _start ldr r0, =_start nop mov pc, lr _start: nop 編譯的時候設定 RO 為 0x0c008000↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓0c008000 <_start-0x14>:c008000: e59f000
Time of Update: 2018-12-07
最近在FPGA的平台上搭建Nios II系統時遇到很多問題,FPGA為EP1C6Q240C8,好在問題最後都解決了。 1.使用外部SDRAM 板子上的SDRAM的型號為HY57V641620HG-TH,64Mbit,時鐘輸入一定要加上時鐘相位位移,否則效驗出錯,我加上62deg或100deg都可以正常運行。最好使用PLL的E0作為SDRAM的時鐘輸入。 2.nios經濟型能正常運行,但nios 標準型和快速型不能運行。 之前一直是將PLL的C0作為系統的時鐘,50M,
Time of Update: 2018-12-07
這幾天一直在調試外部儲存空間,也積累了一些經驗和教訓,養成良好的習慣,將這些記錄下來。我用的FLASH是AM29LV160DB-90EC,主要管教功能:A:地址線DQ:資料線DQ15/A-1:如果是字(16位)讀寫入模式,該位作為資料最高位,如果是位元組(8位)讀寫入模式,該位作為地址最低位,在我的電路中採用位元組讀寫入模式,所以作為地址最低位。CE:片選訊號OE:輸出使能訊號RESET:複位訊號BYTE:選擇8位還是16位讀寫入模式,低電平是8位。RY/BY:Ready/Busy輸出DQ15/
Time of Update: 2018-12-07
這幾天一直在看SOPC Builder的使用者手冊,從中看到了很多Avalon介面的進階特性。之前一直對Avalon Memory-Mapped Bridges的作用以及用法不是很瞭解,今天猛然發現這確實是個好東西,可以提高系統效能的同時降低FPGA資源的利用率。那這個bridge究竟實現了這麼樣的一個功能呢?為什麼我們要使用這個bridge,它能給我們帶來哪些好處呢?如果沒有添加bridge,就像下面這個圖中顯示的那樣,整個系統顯得很繁瑣現在我們來看看 Avalon-MM
Time of Update: 2018-12-07
CRC16效驗代碼,可用於對SD卡的寫操作中。 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 module crc_unit_16 (clk,ready,indata,reset,crc); 2 3 input clk; 4 input ready; 5 input indata; 6 input reset; 7
Time of Update: 2018-12-07
學sopc也有個很長一段時間,最近第一次自己設計IP核。參照了艾米的自訂IP核:SRAM,12864的例子,以及黑金的PWM的例子,同時看了兩本書,以及《Avalon-MM Interface Specialtion》,最後按部就班設計,為了驗證,先從簡單的開始,可是sram好像可以,lcd1602和led 都不行,在此處我先講解我設計led的流程: (1)當然是led ip verilog的代碼/*************************************************
Time of Update: 2018-12-07
nios2 開始,irq有了增強型,但其實增強型只是個外殼,內部還是原始的irq,一摸一樣暈得很。。。此處不對此做任何主觀見解,也許altera要升級,先封裝在發揮呢。此處為了達到altera的要求,我們可以為所欲為的設計相容普通和增強型irq的代碼 關於是否是增強型,定義在system.h裡面 nios2 91會自動幫你設計為增強型,如果你非要用原始的中斷,先把“#define
Time of Update: 2018-12-07
前面說過,在C,C++等語言學習中,“Hello World”將會是第一個學習的代碼,但是在FPGA中由於電路驅動的複雜性,與單片機雷同,我們無法在電腦上實現“Hello World”的顯示,而必須依靠相關硬體。因此我們不得不在一定的基礎上,才能講解關於LCD1602字元液晶的驅動,以及Hello World的顯示。雷同於前面MCU按鍵消抖動移植代碼,此處也可以移植MCU LCD1602驅動代碼。本常式不是Bingo原創,是按照網友“小時不識月”的代碼,移植修改最後定型為Bingo版本(O(∩_
Time of Update: 2018-12-07
http://blog.ednchina.com/chactor/185802/message.aspx #include <stdio.h> #include <stdlib.h> #include <sys/alt_dma.h> #include "system.h" static volatile int rx_done = 0; int rc; alt_dma_txchan txchan;
Time of Update: 2018-12-07
主要修改了函數類型,相容了普通和增強型中斷主要函數如下:(1)uart_regs.h(2)mcu_uart.h(3)mcu_uart.c(4)sys_main.c //--------------------------------------------------------------------------/* * uart_regs.h * * Created on: 2011-4-4 * Author: CrazyBingo */ #
Time of Update: 2018-12-07
(1)dma_1: memory to periheralread_master: sdram中的數組的地址write_master: uart txdtxddata地址 (2)uart ip 定製 (3) dma ip 定製根據 dma 的ds,至少得read_master 兩倍的深度,不然會出錯(此處準備1024,故增大一位11:bit)次數是資料寄存器的長度,即數量,不是寬度。 下面是dma ip定製的允許傳輸的位元組使能選項,理論上uart
Time of Update: 2018-12-07
轉載:http://blog.ednchina.com/conan85420/431119/message.aspx本程式首先輸出目標地址空間的資料,然後連續發起兩次DMA傳輸,最後再次輸出DMA傳輸後目標地址空間的資料。第二次發起可以在第一次DMA傳輸沒有結束的情況下開始,不過要注意,兩次的目標地址不能有重疊部分,否則發起會失敗。 #include <stdio.h> #include <stdlib.h> #include "unistd.h"
Time of Update: 2018-12-07
轉載:http://lych.yo2.cn/articles/%E4%B9%9F%E6%9D%A5%E8%B0%88fpga%E7%94%B5%E8%84%91%EF%BC%81.html 處於我的專業,不談FPGA電腦是不可能的事——當然這僅僅是我認為,因為好像很多同專業的人都不怎麼談,他們只是討論FPGA的應用系統,而我一直頑固 地認為,這就和用P4
Time of Update: 2018-12-07
一、VGA的誘惑首先,VGA的驅動,這事,一般的單片機是辦不到的;由於FPGA的速度,以及並行的優勢,加上可現場配置的優勢,VGA的配置,只有俺們FPGA可以勝任,也只有FPGA可以隨心所欲地配置(當然ARM也可以,應用比較高吧)。初學者就是喜歡看炫的效果,往往會忍不住想玩。尤其玩FPGA的,沒玩VGA就感到跟單片機沒啥提升,因此VGA的驅動也不得不講。Bingo當年也是如此。擋不住VGA的誘惑,初學者問Bingo
Time of Update: 2018-12-07
http://blog.ednchina.com/chactor/185802/message.aspxNios II中的DMA傳輸有以下三種形式:1、 儲存空間到儲存空間這種情況下需要同時開啟發送通道和接收通道,而且源地址和目標地址都是自增的。tx = alt_dma_txchan_open("/dev/dma_0");//開啟發送通道dma_res = alt_dma_txchan_send(tx, tx_buf, 32, NULL, NULL); // tx_buf是源地址rx =
Time of Update: 2018-12-07
如何移植Uboot到自己的板子?這段是Uboot源碼readme中給出的大體步驟If the system board that you have is not listed, then you will needto port U-Boot to your hardware platform. To do this, follow thesesteps:1. Add a new configuration option for your board to the toplevel
Time of Update: 2018-12-07
文章目錄 Testbench代碼設計技巧 Testbench代碼設計技巧" There are many ways " to code a test case, it all depens on the creativity ot the Testbench designer.Testbench代碼設計技巧 11. Clock logic設計技巧 12. Asynchronous reset設計技巧 13. System
Time of Update: 2018-12-07
最近有時間開始學習ARM,平台是TQ2440,下載了2.6.31的核心源碼,並開始構建yaffs2檔案系統,手冊上寫的還是很詳細,可是我在往裡面加Zmodem檔案傳輸通訊協定的命時,卻出現了-/bin/sh: rz: not found的錯誤,自己編譯的hello程式也出現同樣的錯誤,不是許可權不夠,後來把系統內建的根檔案系統下的庫檔案全複製過來,這樣就可以執行了。
Time of Update: 2018-12-07
這是在Keil MDK環境下的一個外部中斷程式,習慣了用Keil,沒有用過ADS,所以就用H-Jtag和MDK組合一起調試,感覺真的很方便,這段程式僅僅是一個大架構 IRQ_Handler PROC EXPORT IRQ_Handler [WEAK] SUB lr,lr,#4 ;儲存返回地址 STMDB sp!,{R0-R12,lr} ;儲存現場 LDR