第十一章 以少制多——基於PLD的矩陣鍵盤狀態機器控制

講過了獨立按鍵檢測,理所當然應該講講FPGA中矩陣鍵盤的應用了。這個思維和電路在FPGA中有所不同,在此,在此做詳細解釋,Bingo用自己設計的成熟的代碼作為案例,希望對你有用。一、FPGA矩陣鍵盤電路圖在FPGA中的電路,與單片機雷同,如下所示:在上電預設情況下,L[3:0]

ldr與adr的區別

     ldr     r0, _start        adr     r0, _start        ldr     r0, =_start        nop        mov     pc, lr _start:        nop        編譯的時候設定 RO 為 0x0c008000↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓0c008000 <_start-0x14>:c008000:       e59f000

Nios II系統中SDRAM的使用

 最近在FPGA的平台上搭建Nios II系統時遇到很多問題,FPGA為EP1C6Q240C8,好在問題最後都解決了。    1.使用外部SDRAM     板子上的SDRAM的型號為HY57V641620HG-TH,64Mbit,時鐘輸入一定要加上時鐘相位位移,否則效驗出錯,我加上62deg或100deg都可以正常運行。最好使用PLL的E0作為SDRAM的時鐘輸入。   2.nios經濟型能正常運行,但nios 標準型和快速型不能運行。     之前一直是將PLL的C0作為系統的時鐘,50M,

Nios II系統外擴FLASH

這幾天一直在調試外部儲存空間,也積累了一些經驗和教訓,養成良好的習慣,將這些記錄下來。我用的FLASH是AM29LV160DB-90EC,主要管教功能:A:地址線DQ:資料線DQ15/A-1:如果是字(16位)讀寫入模式,該位作為資料最高位,如果是位元組(8位)讀寫入模式,該位作為地址最低位,在我的電路中採用位元組讀寫入模式,所以作為地址最低位。CE:片選訊號OE:輸出使能訊號RESET:複位訊號BYTE:選擇8位還是16位讀寫入模式,低電平是8位。RY/BY:Ready/Busy輸出DQ15/

關於Avalon Memory-Mapped Bridges的作用

     這幾天一直在看SOPC Builder的使用者手冊,從中看到了很多Avalon介面的進階特性。之前一直對Avalon Memory-Mapped Bridges的作用以及用法不是很瞭解,今天猛然發現這確實是個好東西,可以提高系統效能的同時降低FPGA資源的利用率。那這個bridge究竟實現了這麼樣的一個功能呢?為什麼我們要使用這個bridge,它能給我們帶來哪些好處呢?如果沒有添加bridge,就像下面這個圖中顯示的那樣,整個系統顯得很繁瑣現在我們來看看 Avalon-MM

CRC16效驗Verilog原始碼

 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 

qii, sopc, nios ii 10.1 IP核設計,LED驗證死活不行,感覺很神奇

學sopc也有個很長一段時間,最近第一次自己設計IP核。參照了艾米的自訂IP核:SRAM,12864的例子,以及黑金的PWM的例子,同時看了兩本書,以及《Avalon-MM Interface Specialtion》,最後按部就班設計,為了驗證,先從簡單的開始,可是sram好像可以,lcd1602和led 都不行,在此處我先講解我設計led的流程: (1)當然是led ip verilog的代碼/*************************************************

關於一種相容nios2 irq的代碼設計

nios2 開始,irq有了增強型,但其實增強型只是個外殼,內部還是原始的irq,一摸一樣暈得很。。。此處不對此做任何主觀見解,也許altera要升級,先封裝在發揮呢。此處為了達到altera的要求,我們可以為所欲為的設計相容普通和增強型irq的代碼 關於是否是增強型,定義在system.h裡面 nios2 91會自動幫你設計為增強型,如果你非要用原始的中斷,先把“#define

第十二章 你還好嗎——LCD 1602 Hello World

前面說過,在C,C++等語言學習中,“Hello World”將會是第一個學習的代碼,但是在FPGA中由於電路驅動的複雜性,與單片機雷同,我們無法在電腦上實現“Hello World”的顯示,而必須依靠相關硬體。因此我們不得不在一定的基礎上,才能講解關於LCD1602字元液晶的驅動,以及Hello World的顯示。雷同於前面MCU按鍵消抖動移植代碼,此處也可以移植MCU LCD1602驅動代碼。本常式不是Bingo原創,是按照網友“小時不識月”的代碼,移植修改最後定型為Bingo版本(O(∩_

NIOS2 DMA Memory to Memory Transfer

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;

受教黑金文檔,再度最佳化相容irq uart代碼

主要修改了函數類型,相容了普通和增強型中斷主要函數如下:(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 */ #

NIOS2 DMA Memory to Peripheral Trnasfer

(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

Nios II DMA: 多次發起

轉載:http://blog.ednchina.com/conan85420/431119/message.aspx本程式首先輸出目標地址空間的資料,然後連續發起兩次DMA傳輸,最後再次輸出DMA傳輸後目標地址空間的資料。第二次發起可以在第一次DMA傳輸沒有結束的情況下開始,不過要注意,兩次的目標地址不能有重疊部分,否則發起會失敗。 #include <stdio.h> #include <stdlib.h> #include "unistd.h"

淺談FPGA電腦

轉載: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

第十四章 沒我不行——基於FPGA的VGA可移植模組終極設計

一、VGA的誘惑首先,VGA的驅動,這事,一般的單片機是辦不到的;由於FPGA的速度,以及並行的優勢,加上可現場配置的優勢,VGA的配置,只有俺們FPGA可以勝任,也只有FPGA可以隨心所欲地配置(當然ARM也可以,應用比較高吧)。初學者就是喜歡看炫的效果,往往會忍不住想玩。尤其玩FPGA的,沒玩VGA就感到跟單片機沒啥提升,因此VGA的驅動也不得不講。Bingo當年也是如此。擋不住VGA的誘惑,初學者問Bingo

NIOS2 DMA 傳輸模式

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 =

如何移植Uboot到自己的板子?

如何移植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   

Testbench代碼設計技巧

文章目錄 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

TQ2440上-/bin/sh: hello: not found的解決辦法

      最近有時間開始學習ARM,平台是TQ2440,下載了2.6.31的核心源碼,並開始構建yaffs2檔案系統,手冊上寫的還是很詳細,可是我在往裡面加Zmodem檔案傳輸通訊協定的命時,卻出現了-/bin/sh: rz: not found的錯誤,自己編譯的hello程式也出現同樣的錯誤,不是許可權不夠,後來把系統內建的根檔案系統下的庫檔案全複製過來,這樣就可以執行了。

Keil MDK下的TQ2440外部中斷處理常式

這是在Keil MDK環境下的一個外部中斷程式,習慣了用Keil,沒有用過ADS,所以就用H-Jtag和MDK組合一起調試,感覺真的很方便,這段程式僅僅是一個大架構 IRQ_Handler     PROC                EXPORT  IRQ_Handler               [WEAK]       SUB lr,lr,#4    ;儲存返回地址                STMDB sp!,{R0-R12,lr}   ;儲存現場    LDR 

總頁數: 61357 1 .... 6607 6608 6609 6610 6611 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.