DE2-115创建Web Server详细步骤(Quartus 13.1)

来源:互联网 发布:淘宝卖家常用语 编辑:程序博客网 时间:2024/05/17 07:25

这里综合了Altera提供的各种文献和实例,在最新的Quartus 13.1构建。

1. New Project

2.Create New System

Ctrl+R,将时钟Name更改为clk_50,频率为50MHz

加入altpll组件,c0->100MHz,作为系统时钟;c1->100MHz,相位延迟-2ns,作为SDRAM时钟;C2->10MHz,作为其他LCD,LED等时钟;可选C3->65MHz,作为VGA像素时钟。(图就不改了)

在View菜单中,打开Clocks视图,修改时钟名字提高易读性。分别是altpll_sys, altpll_sdram, altpll_io, altpll_vga。

altpll.inclk_interface设置为clk_50,双击altpll的export,导出areset,locked,phasedone。这个locked信号可以做nios的reset

加入NIOS Processor,JTAG UART(IRQ 0)

加入SDRAM controller,导出wire,地址锁定为0x0

各component的clk均为altpll_sys,sdram的Avalon Memory Mapped Slave连接到cpu.data_master和instruction_master。

添加Generic Tri-State Controller,作为Common Flash Interface,名字为ext_flash(和web server app模版名字相同)

添加Tri-State Conduit Bridge作为Flash的端口,连接ext_flash.uas->cpu.data_master,ext_flash.tcm->tristate_conduit_bridge_flash.tcs,导出tristate_conduit_bridge_flash.out

add Triple-Speed Ethernet,名字为tse_mac(web sever模板中的名字),Core Variations: 10/10/100Mb Ethernet MAC,Interface RGMII,Include MDIO Module (MDC/MDIO)

terASIC提供的DE2_115_Web_Server.qsys中Triple-Speed Ethernet的名字有错(13改了名?)。可用文本编辑器修改此qsys文件,查找triple_speed_ethernet,修改module为:

<module kind="altera_eth_tse" version="13.1" enabled="1" name="tse_mac">

添加On-Chip Memory作为 Descriptor Memory

add scatter-gatter dma controller,Memory To Stream,Source error width为1,作为发送DMA

再次add scatter gather dma controller,Stream To Memory,Sink error width为6

tse, descriptor memory, dma时钟都是alt_sys。

tse.control_port->cpu.data_master

tse.receive_clock->altpll_sys

tse.transmit_clock->altpll_sys

接收链路:tse.receive->sgdma_rx.in, sgdma_rx.m_write->sdram.s1

发送链路:sgdma_tx.m_read->sdram.s1, sgdma_tx.out->tse.trnsmit

sgdma_rx, sgdma_tx两者的descriptor read 和descriptor write,都连接到descriptor_memory.s1,->cpu.data_master

sgdma_rx设置irq 2,sgdma_tx设置irq 3

根据提示导出tse的conduits

以上时钟都适用系统时钟,mapped slave都连接到cpu.data_master上,包括altpll.pll_slave

添加Avalon-MM Clock Crossing Bridge,设置适当深度

clock_crossing_bridge.m0_clk->altpll_io,clock_crossing_bridge.s0_clk->altpll_sys,clock_crossing_bridge.s0->cpu.data_master。

除非特别说明,以下系统的低速设备都使用altpll_io和clock_crossing_bridge.m0连接到clk和mapped slave (s1)。

add Interval Timer (IRQ 1), System ID, LCD 16027, LED pio (led_pio), SWITCH pio, Seven Segment Display pio, KEY pio (可将KEY[0]留作全局reset)

这里强调一点:System ID是很重要的一个设备,设定一个常数,和timestamp配合判断NIOS和你的BSP是否匹配,不要在Run Configuration 中采取 Ignore mismatched system timestamp,我常常因为这个 mismatch 的提示才知道bsp不匹配。

修改cpu,reset vector memory 和 exception vector memory 都设置为 sdram.s1

菜单System -> Create Global Reset Network

System -> assign base address

FIle -> Save

应当只有一个警告

Warning: System.flash: Properties (isFlash,isMemoryDevice,isNonVolatileStorage) have been set on interface uas - in composed mode these are ignored

终于可以:Generate -> Generating...

Generate -> HDL example, copy

3. Create a new DDIO_OUT megafunction variation

width 设置为 1bit,Neither asynchronous clear nor asynchronous set ports options.

4. Create a new altpll megafunction variation

输入时钟为以太网的接收时钟,c0:125MHz; c1: 125MHz, 90deg; c2:125MHz, 180deg

5. New systemverilog file

paste HDL example

从terasic提供的例子中copy端口描述部分

修改nios的实例化部分

`define NET0module web_server(<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// CLOCK //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>CLOCK_50,  CLOCK2_50,  CLOCK3_50,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENETCLK_25,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// Sma //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SMA_CLKIN,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SMA_CLKOUT,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// LED //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LEDG,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LEDR,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// KEY //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>KEY,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// SW //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SW,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// SEG7 //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX0,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX1,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX2,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX3,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX4,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX5,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX6,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX7,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// LCD //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LCD_BLON,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LCD_DATA,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LCD_EN,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LCD_ON,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LCD_RS,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LCD_RW,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// RS232 //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>UART_CTS,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>UART_RTS,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>UART_RXD,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>UART_TXD,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// PS2 //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>PS2_CLK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>PS2_DAT,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>PS2_CLK2,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>PS2_DAT2,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// SDCARD //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SD_CLK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SD_CMD,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SD_DAT,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SD_WP_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// VGA //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_B,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_BLANK_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_CLK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_G,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_HS,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_R,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_SYNC_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_VS,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// Audio //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>AUD_ADCDAT,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>AUD_ADCLRCK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>AUD_BCLK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>AUD_DACDAT,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>AUD_DACLRCK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>AUD_XCK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// I2C for EEPROM //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>EEP_I2C_SCLK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>EEP_I2C_SDAT,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// I2C for Audio and Tv-Decode //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>I2C_SCLK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>I2C_SDAT,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// Ethernet 0 //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_GTX_CLK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_INT_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_MDC,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_MDIO,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_RST_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_RX_CLK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_RX_COL,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_RX_CRS,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_RX_DATA,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_RX_DV,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_RX_ER,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_TX_CLK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_TX_DATA,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_TX_EN,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_TX_ER,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_LINK100,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// Ethernet 1 //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_GTX_CLK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_INT_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_MDC,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_MDIO,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_RST_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_RX_CLK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_RX_COL,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_RX_CRS,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_RX_DATA,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_RX_DV,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_RX_ER,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_TX_CLK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_TX_DATA,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_TX_EN,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_TX_ER,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_LINK100,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// TV Decoder //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>TD_CLK27,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>TD_DATA,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>TD_HS,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>TD_RESET_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>TD_VS,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>/////// USB OTG controller<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>OTG_DATA,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>OTG_ADDR,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>OTG_CS_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>OTG_WR_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>OTG_RD_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>OTG_INT,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>OTG_RST_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span><span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// IR Receiver //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>IRDA_RXD,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// SDRAM //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_ADDR,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_BA,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_CAS_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_CKE,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_CLK,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_CS_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_DQ,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_DQM,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_RAS_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_WE_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// SRAM //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SRAM_ADDR,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SRAM_CE_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SRAM_DQ,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SRAM_LB_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SRAM_OE_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SRAM_UB_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SRAM_WE_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// Flash //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_ADDR,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_CE_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_DQ,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_OE_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_RST_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_RY,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_WE_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_WP_N,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// GPIO //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>GPIO,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// HSMC (LVDS) //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_CLKIN_P1,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_CLKIN_P2,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_CLKIN0,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_CLKOUT_P1,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_CLKOUT_P2,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_CLKOUT0,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_D,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_RX_D_P,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_TX_D_P,<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>  //////// EXTEND IO //////////  EX_IO<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>);<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//=======================================================<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//  PARAMETER declarations<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//=======================================================<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//=======================================================<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//  PORT declarations<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//=======================================================<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// CLOCK //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>CLOCK_50;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>CLOCK2_50;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>CLOCK3_50;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENETCLK_25;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// Sma //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SMA_CLKIN;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SMA_CLKOUT;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// LED //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [8:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LEDG;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [17:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LEDR;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// KEY //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>  [3:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>KEY;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// SW //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>        [17:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SW;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// SEG7 //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [6:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX0;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [6:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX1;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [6:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX2;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [6:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX3;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [6:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX4;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [6:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX5;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [6:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX6;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [6:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX7;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// LCD //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LCD_BLON;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>        [7:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LCD_DATA;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LCD_EN;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LCD_ON;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LCD_RS;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>LCD_RW;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// RS232 //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>UART_CTS;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>UART_RTS;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>UART_RXD;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>UART_TXD;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// PS2 //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>PS2_CLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>PS2_DAT;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>PS2_CLK2;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>PS2_DAT2;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// SDCARD //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SD_CLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SD_CMD;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>        [3:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SD_DAT;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SD_WP_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// VGA //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [7:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_B;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_BLANK_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_CLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [7:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_G;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_HS;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [7:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_R;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_SYNC_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>VGA_VS;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// Audio //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>AUD_ADCDAT;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>AUD_ADCLRCK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>AUD_BCLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>AUD_DACDAT;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>AUD_DACLRCK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>AUD_XCK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// I2C for EEPROM //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>EEP_I2C_SCLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>EEP_I2C_SDAT;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// I2C for Audio and Tv-Decode //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>I2C_SCLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>I2C_SDAT;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// Ethernet 0 //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_GTX_CLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_INT_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_MDC;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_MDIO;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_RST_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_RX_CLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_RX_COL;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_RX_CRS;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>        [3:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_RX_DATA;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_RX_DV;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_RX_ER;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_TX_CLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [3:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_TX_DATA;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_TX_EN;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_TX_ER;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_LINK100;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// Ethernet 1 //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_GTX_CLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_INT_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_MDC;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_MDIO;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_RST_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_RX_CLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_RX_COL;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_RX_CRS;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>        [3:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_RX_DATA;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_RX_DV;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_RX_ER;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_TX_CLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [3:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_TX_DATA;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_TX_EN;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_TX_ER;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_LINK100;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// TV Decoder 1 //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>TD_CLK27;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>        [7:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>TD_DATA;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>TD_HS;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>TD_RESET_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>TD_VS;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// USB OTG controller //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout            [15:0]    OTG_DATA;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output           [1:0]     OTG_ADDR;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output                     OTG_CS_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output                     OTG_WR_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output                     OTG_RD_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input                      OTG_INT;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output                     OTG_RST_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// IR Receiver //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>IRDA_RXD;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// SDRAM //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [12:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_ADDR;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [1:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_BA;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_CAS_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_CKE;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_CLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_CS_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>        [31:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_DQ;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [3:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_DQM;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_RAS_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>DRAM_WE_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// SRAM //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [19:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SRAM_ADDR;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SRAM_CE_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>        [15:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SRAM_DQ;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SRAM_LB_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SRAM_OE_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SRAM_UB_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>SRAM_WE_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// Flash //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [22:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_ADDR;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_CE_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>        [7:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_DQ;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_OE_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_RST_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_RY;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_WE_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>FL_WP_N;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// GPIO //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>        [35:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>GPIO;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////////// HSMC (LVDS) //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_CLKIN_P1;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_CLKIN_P2;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_CLKIN0;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_CLKOUT_P1;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_CLKOUT_P2;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>          <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_CLKOUT0;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>        [3:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_D;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>input<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>        [16:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_RX_D_P;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>output<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>     [16:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HSMC_TX_D_P;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//////// EXTEND IO //////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>inout<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>        [6:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>EX_IO;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//=======================================================<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//  REG/WIRE declarations<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//=======================================================<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>sys_reset_n;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span><span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//===== ethernet =====<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>enet_tx_clk_mac;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>enet_tx_clk_phy;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>enet_rx_clk_90deg;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>enet_gtx_clk;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>enet_rx_clk;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_mdio_in;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_mdio_oen;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET0_mdio_out;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_mdio_in;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_mdio_oen;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ENET1_mdio_out;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ena_10_from_mac;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>eth_mode;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>set_1k_to_mac;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>set_10_to_mac;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX0P;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX1P;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX2P;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX3P;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX4P;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX5P;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX6P;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>HEX7P;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span><span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>pll_locked;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>pll_phasedone;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic[7:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ssd0, ssd1, ssd2, ssd3;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic[7:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ssd4, ssd5, ssd6, ssd7;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>enet_reset_n;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>parameter<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ctr_width<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>=<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>20;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic[ctr_width-1:0]<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ctr;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// Reset counter<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// ===== ethernet clock =====<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>`ifdef NET0<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign enet_rx_clk<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>= ENET0_RX_CLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign ENET0_GTX_CLK<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>= enet_gtx_clk;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>`else<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign enet_rx_clk<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>= ENET1_RX_CLK;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign ENET1_GTX_CLK<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>= enet_gtx_clk;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>`endif<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// ===== MDIO Tristate<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign ENET0_mdio_in<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>= ENET0_MDIO;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign ENET0_MDIO<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>= ENET0_mdio_oen ? 1'bz : ENET0_mdio_out;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign ENET1_mdio_in<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>= ENET1_MDIO;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign ENET1_MDIO<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>= ENET1_mdio_oen ? 1'bz : ENET1_mdio_out;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// ===== ethernet signal =====<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign ENET0_RST_N<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>= enet_reset_n;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign ENET1_RST_N<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>= enet_reset_n;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// ===== ethernet control signal define<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign set_1k_to_mac<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>= 1'b0;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign set_10_to_mac<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>= 1'b0;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span><span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign sys_reset_n = pll_locked;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign LEDG[8] = sys_reset_n;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign HEX0[6:0] = ssd0[6:0];<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign HEX1[6:0] = ssd1[6:0];<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign HEX2[6:0] = ssd2[6:0];<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign HEX3[6:0] = ssd3[6:0];<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign HEX4[6:0] = ssd4[6:0];<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign HEX5[6:0] = ssd5[6:0];<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign HEX6[6:0] = ssd6[6:0];<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign HEX7[6:0] = ssd7[6:0];<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//=======================================================<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//  Structural coding<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>//=======================================================<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span><span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>always_ff@(posedge CLOCK_50 or negedge sys_reset_n) begin<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>if (!sys_reset_n) begin<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>enet_reset_n<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span><=<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>1'b0;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ctr<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span><=<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>0;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>end<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>else begin<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>if (ctr == {ctr_width{1'b1}}) begin<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>enet_reset_n<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span><=<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>1'b1;// Auto reset phy 1st time<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>end<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>else begin<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ctr<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span><=<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ctr + 1;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>enet_reset_n<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span><=<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>1'b0;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>end<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>end<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>end<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>enet_rx_pll pll_inst(<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.inclk0(enet_rx_clk),<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.c0(enet_rx_clk_90deg),<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.c1(enet_tx_clk_mac),<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.c2(enet_tx_clk_phy)<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>);<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span><span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>ddio_out ddio_out_inst(<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.datain_h(1'b1),<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.datain_l(1'b0),<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.outclock(enet_tx_clk_phy),<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.dataout(enet_gtx_clk)<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>);<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>  nios_core nios_inst (<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.clk_clk                    (CLOCK_50),     //              clk.clk<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.reset_reset_n              (sys_reset_n),  //            reset.reset_n<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.altpll_areset_export       (~KEY[0]),         // altpll_areset.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.altpll_locked_export       (pll_locked),   //    altpll_locked.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.altpll_phasedone_export    (pll_phasedone),// altpll_phasedone.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.altpll_sdram_clk           (DRAM_CLK),     //        sdram_clk.clk<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.altpll_vga_clk             (VGA_CLK),      //        sdram_clk.clk<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.sdram_addr                 (DRAM_ADDR),    //            sdram.addr<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.sdram_ba                   (DRAM_BA),      //                 .ba<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.sdram_cas_n                (DRAM_CAS_N),   //                 .cas_n<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.sdram_cke                  (DRAM_CKE),     //                 .cke<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.sdram_cs_n                 (DRAM_CS_N),    //                 .cs_n<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.sdram_dq                   (DRAM_DQ),      //                 .dq<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.sdram_dqm                  (DRAM_DQM),     //                 .dqm<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.sdram_ras_n                (DRAM_RAS_N),   //                 .ras_n<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.sdram_we_n                 (DRAM_WE_N),    //                 .we_n<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.flash_tcm_address_out      (FL_ADDR),      //            flash.tcm_address_out<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.flash_tcm_read_n_out       (FL_OE_N),      //                 .tcm_read_n_out<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.flash_tcm_write_n_out      (FL_WE_N),      //                 .tcm_write_n_out<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.flash_tcm_data_out         (FL_DQ),        //                 .tcm_data_out<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.flash_tcm_chipselect_n_out (FL_CE_N),      //                 .tcm_chipselect_n_out<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.lcd_display_RS             (LCD_RS),       //              lcd.RS<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.lcd_display_RW             (LCD_RW),       //                 .RW<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.lcd_display_data           (LCD_DATA),     //                 .data<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.lcd_display_E              (LCD_EN),        //                .E<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.ledg_export                (LEDG[7:0]),         //        ledg.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.ledr_export                (LEDR),         //             ledr.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.sw_export                  (SW),           //               sw.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.key_export                 (KEY[3:1]),     //              key.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.ssd0_export                (ssd0),         //             ssd0.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.ssd1_export                (ssd1),         //             ssd1.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.ssd2_export                (ssd2),         //             ssd2.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.ssd3_export                (ssd3),         //             ssd3.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.ssd4_export                (ssd4),         //             ssd4.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.ssd5_export                (ssd5),         //             ssd5.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.ssd6_export                (ssd6),        //              ssd6.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.ssd7_export                (ssd7),        //              ssd7.export<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// the_tse_mac (RGMII)<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>`ifdef<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>NET0<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_pcs_tx_clock_clk       (enet_tx_clk_mac),  // tse_pcs_tx_clock.clk<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_pcs_rx_clock_clk       (enet_rx_clk_90deg), // tse_pcs_rx_clock.clk<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_mdio_mdc           (ENET0_MDC),    //     tse_mac_mdio.mdc<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_mdio_mdio_in       (ENET0_mdio_in),//                 .mdio_in<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_mdio_mdio_out      (ENET0_mdio_out),//                .mdio_out<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_mdio_mdio_oen      (ENET0_mdio_oen),//                .mdio_oen<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_rgmii_rgmii_in     (ENET0_RX_DATA),//    tse_mac_rgmii.rgmii_in<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_rgmii_rgmii_out    (ENET0_TX_DATA),//                 .rgmii_out<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_rgmii_rx_control   (ENET0_RX_DV),  //                 .rx_control<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_rgmii_tx_control   (ENET0_TX_EN),  //                 .tx_control<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_status_set_10      (set_10_to_mac),//   tse_mac_status.set_10<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_status_set_1000    (set_1k_to_mac),//                 .set_1000<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_status_eth_mode    (eth_mode),     //                 .eth_mode<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// not use<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_status_ena_10      (ena_10_from_mac) //               .ena_10<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// not use<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>`else<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_pcs_tx_clock_clk       (enet_tx_clk_mac),  // tse_pcs_tx_clock.clk<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_pcs_rx_clock_clk       (enet_rx_clk_90deg), // tse_pcs_rx_clock.clk<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_mdio_mdc           (ENET1_MDC),    //     tse_mac_mdio.mdc<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_mdio_mdio_in       (ENET1_mdio_in),//                 .mdio_in<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_mdio_mdio_out      (ENET1_mdio_out),//                .mdio_out<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_mdio_mdio_oen      (ENET1_mdio_oen),//                .mdio_oen<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_rgmii_rgmii_in     (ENET1_RX_DATA),//    tse_mac_rgmii.rgmii_in<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_rgmii_rgmii_out    (ENET1_TX_DATA),//                 .rgmii_out<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_rgmii_rx_control   (ENET1_RX_DV),  //                 .rx_control<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_rgmii_tx_control   (ENET1_TX_EN),  //                 .tx_control<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_status_set_10      (set_10_to_mac),//   tse_mac_status.set_10<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// not use<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_status_set_1000    (set_1k_to_mac),//                 .set_1000<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_status_eth_mode    (eth_mode),     //                 .eth_mode<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>.tse_mac_status_ena_10      (ena_10_from_mac)//                .ena_10<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// not use<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>`endif<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>);<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// Flash Config<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign FL_RST_N = sys_reset_n;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign FL_WP_N = 1'b1;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>///////////////////////////////////////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// LCD config<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign LCD_BLON = 0; // not supported<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign LCD_ON = 1'b1; // alwasy on<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span> io_dir;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>logic <span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span> action;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign io_dir = KEY[0] & action;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>///////////////////////////////////////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// GPIO<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign GPIO[17:0] = (io_dir)?GPIO[35:18]:18'hz;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign GPIO[35:18] = (io_dir)?GPIO[17:0]:18'hz;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>///////////////////////////////////////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// HSMC<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign HSMC_D[1:0] = (io_dir)?HSMC_D[3:2]:2'hz;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign HSMC_D[3:2] = (io_dir)?HSMC_D[1:0]:2'hz;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign HSMC_TX_D_P = HSMC_RX_D_P;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign HSMC_CLKOUT_P1 = HSMC_CLKIN_P1;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign HSMC_CLKOUT_P2 = HSMC_CLKIN_P2;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign HSMC_CLKOUT0 = HSMC_CLKIN0;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>///////////////////////////////////////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// TV<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign TD_RESET_N = TD_VS;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign action = FL_RY & TD_HS & TD_CLK27 & (TD_DATA == 8'hff);<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>///////////////////////////////////////////<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>// ps2<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign PS2_CLK = PS2_DAT;<span style="margin: 0px; padding: 0px; border: 0px; background: transparent;"></span>assign PS2_CLK2 = PS2_DAT2;endmodule

6. 添加qsys(也包括ddio_out、altpll)生成的qip文件到工程中

7. assignments -> import assignments。

8. 可以编译了

9. NIOS software builder

New application and BSP from Template

Project Template: Web Server (RGMII)

在main函数入口可以增加

#ifdef LCD_DISPLAY_NAME  lcdDevice = fopen( LCD_DISPLAY_NAME, "w" );  fprintf(lcdDevice, "Booting...\n");  fclose( lcdDevice );#endif

便于查看启动状态。

编译。

10. 打开 nios_command_shell,注意文件相对路径。(用GUI操作也可以)

将ro_zipfs.zip写入flash。注意location、base、sidp、id timestamp参数在BSP Editor中查看,usbblaster名字也要确认。默认ro_zipfs.zip在software/yourapp/system下。

bin2flash --input="./ro_zipfs.zip" --output="./ro.flashfs_cfi_flash.flash" --location=0x100000 --verbosenios2-flash-programmer "./ro.flashfs_cfi_flash.flash" --base 0x9000000 --sidp 0xB000140 --id 0x0 --timestamp 1353045137 --device 1 --instance 0 --cable USB-Blaster\ [2-1.5] --erase-all

然后可以下载了

quartus_pgm -m jtag -c 1 -o "p;web_server.sof"nios2-download app.elf -c USB-Blaster\ [2-1.5]  -gnios2-terminal -c USB-Blaster\ [2-1.5]

模板生成的example中有详细的注释,这里就不做代码解释了。

0 0
原创粉丝点击