MyFPGA Forum

 找回密码
 注册
搜索
查看: 7625|回复: 2
打印 上一主题 下一主题

时序式设计出来的实例 : (DE2 实际看结果)

[复制链接]
跳转到指定楼层
1#
发表于 2010-4-7 00:05:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这边顺便简单提供一验证上层, 可直接在 DE2 上测试结果并使用 SignalTapII 来看讯号…
至于pin assignment 可直接至友晶科技的网站上下载 TV 的 project 来使用, 同样 七段显示器也从其范例可以找到…


module DE2_TV
        (
...   // 同TV 的 project
        );
//===========================================================================
// PARAMETER declarations
//===========================================================================


//===========================================================================
// PORT declarations
//===========================================================================
////////////////////////        Clock Input                 ////////////////////////
input                        OSC_27;                                        //        27 MHz
input                        OSC_50;                                        //        50 MHz
input                        EXT_CLOCK;                                //        External Clock
////////////////////////        Push Button                ////////////////////////
input        [3:0]        KEY;                                        //        Button[3:0]
////////////////////////        DPDT Switch                ////////////////////////
input        [17:0]        DPDT_SW;                                //        DPDT Switch[17:0]
////////////////////////        7-SEG Dispaly        ////////////////////////
output        [6:0]        HEX0;                                        //        Seven Segment Digital 0
output        [6:0]        HEX1;                                        //        Seven Segment Digital 1
output        [6:0]        HEX2;                                        //        Seven Segment Digital 2
output        [6:0]        HEX3;                                        //        Seven Segment Digital 3
output        [6:0]        HEX4;                                        //        Seven Segment Digital 4
output        [6:0]        HEX5;                                        //        Seven Segment Digital 5
output        [6:0]        HEX6;                                        //        Seven Segment Digital 6
output        [6:0]        HEX7;                                        //        Seven Segment Digital 7
////////////////////////////        LED                ////////////////////////////
output        [8:0]        LED_GREEN;                                //        LED Green[8:0]
output        [17:0]        LED_RED;                                //        LED Red[17:0]
////////////////////////////        UART        ////////////////////////////
output                        UART_TXD;                                //        UART Transmitter
input                        UART_RXD;                                //        UART Receiver
////////////////////////////        IRDA        ////////////////////////////
output                        IRDA_TXD;                                //        IRDA Transmitter
input                        IRDA_RXD;                                //        IRDA Receiver
///////////////////////                SDRAM Interface        ////////////////////////
inout        [15:0]        DRAM_DQ;                                //        SDRAM Data bus 16 Bits
output        [11:0]        DRAM_ADDR;                                //        SDRAM Address bus 12 Bits
output                        DRAM_LDQM;                                //        SDRAM Low-byte Data Mask
output                        DRAM_UDQM;                                //        SDRAM High-byte Data Mask
output                        DRAM_WE_N;                                //        SDRAM Write Enable
output                        DRAM_CAS_N;                                //        SDRAM Column Address Strobe
output                        DRAM_RAS_N;                                //        SDRAM Row Address Strobe
output                        DRAM_CS_N;                                //        SDRAM Chip Select
output                        DRAM_BA_0;                                //        SDRAM Bank Address 0
output                        DRAM_BA_1;                                //        SDRAM Bank Address 0
output                        DRAM_CLK;                                //        SDRAM Clock
output                        DRAM_CKE;                                //        SDRAM Clock Enable
////////////////////////        Flash Interface        ////////////////////////
inout        [7:0]        FL_DQ;                                        //        FLASH Data bus 8 Bits
output        [21:0]        FL_ADDR;                                //        FLASH Address bus 22 Bits
output                        FL_WE_N;                                //        FLASH Write Enable
output                        FL_RST_N;                                //        FLASH Reset
output                        FL_OE_N;                                //        FLASH Output Enable
output                        FL_CE_N;                                //        FLASH Chip Enable
////////////////////////        SRAM Interface        ////////////////////////
inout        [15:0]        SRAM_DQ;                                //        SRAM Data bus 16 Bits
output        [17:0]        SRAM_ADDR;                                //        SRAM Address bus 18 Bits
output                        SRAM_UB_N;                                //        SRAM High-byte Data Mask
output                        SRAM_LB_N;                                //        SRAM Low-byte Data Mask
output                        SRAM_WE_N;                                //        SRAM Write Enable
output                        SRAM_CE_N;                                //        SRAM Chip Enable
output                        SRAM_OE_N;                                //        SRAM Output Enable
////////////////////        ISP1362 Interface        ////////////////////////
inout        [15:0]        OTG_DATA;                                //        ISP1362 Data bus 16 Bits
output        [1:0]        OTG_ADDR;                                //        ISP1362 Address 2 Bits
output                        OTG_CS_N;                                //        ISP1362 Chip Select
output                        OTG_RD_N;                                //        ISP1362 Write
output                        OTG_WR_N;                                //        ISP1362 Read
output                        OTG_RST_N;                                //        ISP1362 Reset
output                        OTG_FSPEED;                                //        USB Full Speed,        0 = Enable, Z = Disable
output                        OTG_LSPEED;                                //        USB Low Speed,         0 = Enable, Z = Disable
input                        OTG_INT0;                                //        ISP1362 Interrupt 0
input                        OTG_INT1;                                //        ISP1362 Interrupt 1
input                        OTG_DREQ0;                                //        ISP1362 DMA Request 0
input                        OTG_DREQ1;                                //        ISP1362 DMA Request 1
output                        OTG_DACK0_N;                        //        ISP1362 DMA Acknowledge 0
output                        OTG_DACK1_N;                        //        ISP1362 DMA Acknowledge 1
////////////////////        LCD Module 16X2        ////////////////////////////
inout        [7:0]        LCD_DATA;                                //        LCD Data bus 8 bits
output                        LCD_ON;                                        //        LCD Power ON/OFF
output                        LCD_BLON;                                //        LCD Back Light ON/OFF
output                        LCD_RW;                                        //        LCD Read/Write Select, 0 = Write, 1 = Read
output                        LCD_EN;                                        //        LCD Enable
output                        LCD_RS;                                        //        LCD Command/Data Select, 0 = Command, 1 = Data
////////////////////        SD Card Interface        ////////////////////////
inout                        SD_DAT;                                        //        SD Card Data
inout                        SD_DAT3;                                //        SD Card Data 3
inout                        SD_CMD;                                        //        SD Card Command Signal
output                        SD_CLK;                                        //        SD Card Clock
////////////////////////        I2C                ////////////////////////////////
inout                        I2C_SDAT;                                //        I2C Data
output                        I2C_SCLK;                                //        I2C Clock
////////////////////////        PS2                ////////////////////////////////
input                         PS2_DAT;                                //        PS2 Data
input                        PS2_CLK;                                //        PS2 Clock
////////////////////        USB JTAG link        ////////////////////////////
input                          TDI;                                        // CPLD -> FPGA (data in)
input                          TCK;                                        // CPLD -> FPGA (clk)
input                          TCS;                                        // CPLD -> FPGA (CS)
output                         TDO;                                        // FPGA -> CPLD (data out)
////////////////////////        VGA                        ////////////////////////////
output                        VGA_CLK;                                   //        VGA Clock
output                        VGA_HS;                                        //        VGA H_SYNC
output                        VGA_VS;                                        //        VGA V_SYNC
output                        VGA_BLANK;                                //        VGA BLANK
output                        VGA_SYNC;                                //        VGA SYNC
output        [9:0]        VGA_R;                                   //        VGA Red[9:0]
output        [9:0]        VGA_G;                                         //        VGA Green[9:0]
output        [9:0]        VGA_B;                                   //        VGA Blue[9:0]
////////////////        Ethernet Interface        ////////////////////////////
inout        [15:0]        ENET_DATA;                                //        DM9000A DATA bus 16Bits
output                        ENET_CMD;                                //        DM9000A Command/Data Select, 0 = Command, 1 = Data
output                        ENET_CS_N;                                //        DM9000A Chip Select
output                        ENET_WR_N;                                //        DM9000A Write
output                        ENET_RD_N;                                //        DM9000A Read
output                        ENET_RST_N;                                //        DM9000A Reset
input                        ENET_INT;                                //        DM9000A Interrupt
output                        ENET_CLK;                                //        DM9000A Clock 25 MHz
////////////////////        Audio CODEC                ////////////////////////////
inout                        AUD_ADCLRCK;                        //        Audio CODEC ADC LR Clock
input                        AUD_ADCDAT;                                //        Audio CODEC ADC Data
inout                        AUD_DACLRCK;                        //        Audio CODEC DAC LR Clock
output                        AUD_DACDAT;                                //        Audio CODEC DAC Data
inout                        AUD_BCLK;                                //        Audio CODEC Bit-Stream Clock
output                        AUD_XCK;                                //        Audio CODEC Chip Clock
////////////////////        TV Devoder                ////////////////////////////
input        [7:0]        TD_DATA;                            //        TV Decoder Data bus 8 bits
input                        TD_HS;                                        //        TV Decoder H_SYNC
input                        TD_VS;                                        //        TV Decoder V_SYNC
output                        TD_RESET;                                //        TV Decoder Reset
input                TD_CLK;                             //        TV Decoder CLOCK       
////////////////////////        GPIO        ////////////////////////////////
inout        [35:0]        GPIO_0;                                        //        GPIO Connection 0
inout        [35:0]        GPIO_1;                                        //        GPIO Connection 1
////////////////////////////////////////////////////////////////////

wire    [3:0]   clk1_set_rd, clk2_set_rd, clk3_set_rd;
wire            max_sclk, max_sdat;
reg     [2:0]   button2_d, button3_d;

//        Enable TV Decoder
assign        TD_RESET        =        1'b1;


always @ (posedge OSC_50)
begin
     button2_d <= {button2_d[1:0], KEY[2]};
     button3_d <= {button3_d[1:0], KEY[3]};
end


ext_pll_ctrl  u_ext_pll_ctrl
(
    // system input
    .osc_50(OSC_50),               
    .rstn(KEY[0]),
    // device 1
    .clk1_set_wr(DPDT_SW[3:0]),
    .clk1_set_rd(clk1_set_rd),
    // device 2
    .clk2_set_wr(DPDT_SW[7:4]),
    .clk2_set_rd(clk2_set_rd),
    // device 3
    .clk3_set_wr(DPDT_SW[11:8]),
    .clk3_set_rd(clk3_set_rd),
    // setting trigger
    .conf_wr(button3_d[2] && !button3_d[1]), // 1T 50MHz
    .conf_rd(button2_d[2] && !button2_d[1]), // 1T 50MHz
    // status
    .conf_ready(),
    .rd_data_ready(), // 1T 50MHz
    // 2-wire interface
    .max_sclk(max_sclk),
    .max_sdat(max_sdat));

ext_pll_slave  u_ext_pll_slave
(
    // system input
    .osc_50(OSC_50),               
    .rstn(KEY[0]),
    // 2-wire interface
    .max_sclk(max_sclk),
    .max_sdat(max_sdat),
    // device 1 output
    .clk1_pr(),
    .clk1_od(),
    .clk1_os(),
    .clk1_ce(),
    .clk1_rstn(),
    // device 2 output
    .clk2_pr(),
    .clk2_od(),
    .clk2_os(),
    .clk2_ce(),
    .clk2_rstn(),
    // device 3 output
    .clk3_pr(),
    .clk3_od(),
    .clk3_os(),
    .clk3_ce(),
    .clk3_rstn());

//        7 segment LUT
SEG7_LUT_8                         u0       
            (        .oSEG0(HEX0),
                                                        .oSEG1(HEX1),
                                                        .oSEG2(HEX2),
                                                        .oSEG3(HEX3),
                                                        .oSEG4(HEX4),
                                                        .oSEG5(HEX5),
                                                        .oSEG6(HEX6),
                                                        .oSEG7(HEX7),
                                                        .iDIG({clk3_set_rd,clk2_set_rd,clk1_set_rd}) );



endmodule
2#
发表于 2010-4-21 09:40:00 | 只看该作者
看看先!
3#
发表于 2012-3-23 23:15:02 | 只看该作者
能不能不要直接上代码。。受不了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|MyFPGA

GMT+8, 2024-4-25 06:10 , Processed in 0.036142 second(s), 14 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表