資源簡介
非常非常難得,可以說網(wǎng)上都沒有;這是我花了非常大的力氣找到的,MP3的verilog硬件實(shí)現(xiàn)_完整工程;可以在ISE綜合生成下載文件。還有說明文檔。

代碼片段和文件信息
#include?“basic_io.h“
#include?“LCD.h“
#include?“SD_Card.h“
//#include?“Open_I2C.h“
#include?“Test.h“
#include?
int?Status;
UINT32?i?j;
int?write_block_count;
int?write_addr;
BYTE?Buffer[1024]={0};
??
void?System_init()?{
??char?Text1[16]?=?“SD?MP3?Player!!?“;
??char?Text2[16]?=?“Initializing....“;
??char?Text3[16]?=?“Press?button?now“;??
??unsigned?char?codec_ready;
??
??printf(“Please?wait?while?system?is?being?initialized...\n“);
??Status?=?0;
????
??init_button_irq();
??printf(“Button?initialized...\n“);
??
??SD_card_init();
??printf(“SD?card?initialized...\n“);
??
??LCD_Test();
??printf(“LCD?initialized...\n“);
??????
??LCD_Line1();
??//??Show?Text?to?LCD
??LCD_Show_Text(Text1);
??//??Change?Line2
??LCD_Line2();
??//??Show?Text?to?LCD
??LCD_Show_Text(Text2);
??
??IOWR(LED_RED_base00x0);
??IOWR(LED_GREEN_base00x0);
??IOWR(SEG7_DISPLAY_base00);
??
??IOWR(DP_RAM_WRITE_IDLE_base?0?1);
??IOWR(DP_RAM_WRITE_DATA_base?0?0);
??IOWR(NIOS_CONTROL_SIGNALS_base?0?0x0);
??
??//?remove?the?reset?signal?from?NIOS?to?hardware
??IOWR(NIOS_CONTROL_SIGNALS_base?0?0x8);
??
??printf(“Waiting?for?audio?codec...\n“);
??do?{
????codec_ready?=?IORD(CODEC_READY_base?0);
??}?while?(codec_ready?==?0);
??printf(“Audio?codec?is?now?ready...\n“);
???
??LCD_Line1();
??//??Show?Text?to?LCD
??LCD_Show_Text(Text1);
??
??LCD_Line2();
??//??Show?Text?to?LCD
??LCD_Show_Text(Text3);
??//?Read?the?first?block?from?SD?card
??SD_read_lba(Buffer?0?2);
??j?=?2;
??i?=?0;
??write_addr?=?0;
??write_block_count?=?0;
?
??printf(“System?is?ready?now...\n“);
??printf(“Please?push?button?0?to?start...\n“);
}
int?main(void)
{
??int?write_request;
??
??System_init();
??
??while(1)
??{
????if?(Status?==?1)?{
??????write_request?=?IORD(DP_RAM_WRITE_REQUEST_base?0);
??????if?(write_request?==?1)?{
//????????printf(“write?requested...\n“);
????????write_block_count++;
????????IOWR(DP_RAM_WRITE_IDLE_base?0?0);
????????
????????//?Read?1024?bytes?from?SD?card???????????????????????
????????while?(i?1024)?{
//??????????printf(“j=%u?i=%d?block=%d?Wdata?%d:?%04x\n“?j?i?write_block_count?write_addr?Tmp1);
??????????IOWR(DP_RAM_WRITE_DATA_base?0?((write_addr?&?0x3FF)?<17)?|?((((Buffer[i]<<8)|(Buffer[i+1]))?&?0xFFFF)?<1)?|?(1?&?0x1));
??????????if?(write_addr?1023)?++write_addr;
??????????else?write_addr?=?0;
??????????i?+=?2;
????????}
????????//?Clear?the?write-enable?signal
????????IOWR(DP_RAM_WRITE_DATA_base?0?0);
????????
//????????printf(“write?finished:?block?%d?addr=%d\n“?write_block_count?write_addr);
????????IOWR(DP_RAM_WRITE_IDLE_base?0?1);
????????IOWR(SEG7_DISPLAY_base0?(write_block_count?&?0xFFFF)?<16?|?((j?/?2048)?&?0xFFFF));??????????????????
????????
????????//?Prepare?data?for?next?write
????????SD_read_lba(Buffer?j?2);
????????j+=2;
????????i?=?0;??
??????}
//??????printf(“write:?b=%d?wc=%d?i=%d?wa=%d?wd=%04X\n“?write_block_count?write_counter?i?write_addr?Tmp1);??????
????}?else?{
??????msleep(500);
????}
??}
?
??return?0;
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2007-03-30?18:15??MAC_MP3_Hardware\DE2_SD_Card_MP3\
?????文件????????5344??2007-03-31?20:44??MAC_MP3_Hardware\DE2_SD_Card_MP3\audio.v
?????文件????????3499??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\AUDIO_PLL.bsf
?????文件????????9917??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\AUDIO_PLL.v
?????文件???????11264??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\AUDIO_PLL2.v
?????文件????????9476??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\AUDIO_PLL2_bb.v
?????文件?????????114??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\AUDIO_PLL2_inst.v
?????文件????????2392??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\bht_ram.mif
?????文件????????4148??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\button_pio.v
?????文件????????1596??2007-03-31?20:44??MAC_MP3_Hardware\DE2_SD_Card_MP3\clock_gen.v
?????文件????????4885??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\codec_ready.v
?????文件?????????808??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\cpu_0.ocp
?????文件??????373312??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\cpu_0.v
?????文件???????11362??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\cpu_0_jtag_debug_module.v
?????文件????????9543??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\cpu_0_jtag_debug_module_wrapper.v
?????文件????????5218??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\cpu_0_mult_cell.v
?????文件????????5878??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\cpu_0_ociram_default_contents.mif
?????文件???????37422??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\cpu_0_test_bench.v
?????目錄???????????0??2007-03-25?19:36??MAC_MP3_Hardware\DE2_SD_Card_MP3\db\
?????文件?????????136??2007-03-25?19:35??MAC_MP3_Hardware\DE2_SD_Card_MP3\db\DE2_SD_Card_Audio.db_info
?????文件????????6745??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\dc_tag_ram.mif
?????文件???????78214??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\DE2_SD_Card_Audio.pin
?????文件?????????952??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\DE2_SD_Card_Audio.qpf
?????文件???????24030??2007-03-05?20:06??MAC_MP3_Hardware\DE2_SD_Card_MP3\DE2_SD_Card_Audio.qsf
?????文件????????2643??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\DE2_SD_Card_Audio.qws
?????文件??????841117??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\DE2_SD_Card_Audio.sof
?????文件???????17046??2007-03-25?19:10??MAC_MP3_Hardware\DE2_SD_Card_MP3\DE2_SD_Card_Audio.v
?????文件?????????308??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\DE2_SD_Card_Audio_time_limited.cdf
?????文件??????841139??2007-03-25?20:22??MAC_MP3_Hardware\DE2_SD_Card_MP3\DE2_SD_Card_Audio_time_limited.sof
?????目錄???????????0??2007-03-11?23:06??MAC_MP3_Hardware\DE2_SD_Card_MP3\DE2_SD_MP3\
?????文件????????1762??2006-05-21?02:19??MAC_MP3_Hardware\DE2_SD_Card_MP3\DE2_SD_MP3\.cdtbuild
............此處省略497個(gè)文件信息
評(píng)論
共有 條評(píng)論