Disabled external gits
This commit is contained in:
1
cs473-es
1
cs473-es
Submodule cs473-es deleted from 28454a9232
2
cs473-es/.gitignore
vendored
Normal file
2
cs473-es/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*.bak
|
||||
*~
|
2
cs473-es/README.md
Normal file
2
cs473-es/README.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# CS-473
|
||||
|
BIN
cs473-es/lab1/Labo_MSP432_v1_2.pdf
Normal file
BIN
cs473-es/lab1/Labo_MSP432_v1_2.pdf
Normal file
Binary file not shown.
109
cs473-es/lab1/ch/main.c
Normal file
109
cs473-es/lab1/ch/main.c
Normal file
@@ -0,0 +1,109 @@
|
||||
#include"msp.h"
|
||||
|
||||
#define UNLOCK_CS CS->KEY = CS_KEY_VAL
|
||||
#define LOCK_CS CS->KEY = 0
|
||||
|
||||
#define DISABLE_WATCHDOG() WDT_A->CTL= WDT_A_CTL_PW | WDT_A_CTL_HOLD
|
||||
|
||||
#define TIMER_PERIOD 20 // ms
|
||||
#define TIMER_DIV (8)
|
||||
#define TIMER_FCLK 3000000
|
||||
#define TIMER_PERIOD_TICKS (((TIMER_FCLK / TIMER_DIV) * TIMER_PERIOD) / 1000)
|
||||
|
||||
//#define FULLRANGE
|
||||
|
||||
#ifdef FULLRANGE
|
||||
#define DC_MIN 0.75
|
||||
#define DC_MAX 2.25
|
||||
#else
|
||||
#define DC_MIN 1
|
||||
#define DC_MAX 2
|
||||
#endif
|
||||
|
||||
#define PERIOD TIMER_PERIOD_TICKS //20 ms
|
||||
#define DUTY_MAX ((unsigned int)(TIMER_PERIOD_TICKS/TIMER_PERIOD)*(DC_MAX)) //2 ms
|
||||
#define DUTY_MIN ((unsigned int)(TIMER_PERIOD_TICKS/TIMER_PERIOD)*(DC_MIN)) //1 ms
|
||||
#define DUTY_RANGE (DUTY_MAX - DUTY_MIN)
|
||||
|
||||
|
||||
#define ADC_MAX ((1 << 14) - 1)
|
||||
#define ADC_MIN 0
|
||||
#define ADC_RANGE ((ADC_MAX-ADC_MIN))
|
||||
|
||||
|
||||
#define ADC_TO_T(v) (DUTY_MIN + ((v - ADC_MIN)*DUTY_RANGE)/ADC_RANGE)
|
||||
|
||||
|
||||
void setup_pins(){
|
||||
// J4 - P2.4
|
||||
P2->DIR |= 0x10; //2.4
|
||||
P2->SEL0 |= 0x10; //2.4 SELECT TA0 MODULE
|
||||
P2->SEL1 &= ~0x10;//2.4 SELECT TA0 MODULE
|
||||
|
||||
// J3 - P4.0
|
||||
P4->SEL0 |= 0x01; //4.0 SELECT ADC MODULE
|
||||
P4->SEL1 |= 0x01; //4.0 SELECT ADC MODULE
|
||||
}
|
||||
|
||||
void setup_clock(){
|
||||
UNLOCK_CS;
|
||||
|
||||
CS->CTL0 |= CS_CTL0_DCORSEL_1; // 3 MHz
|
||||
CS->CTL1 |= CS_CTL1_DIVS__8 | CS_CTL1_SELS__DCOCLK ; // SMCLOCK = DCLOCK/8
|
||||
CS->CTL0 |= CS_CTL0_DCOEN; //Enable
|
||||
|
||||
LOCK_CS;
|
||||
}
|
||||
|
||||
void setup_timer_a0(){
|
||||
TIMER_A0->CCR[0] = PERIOD; //base period
|
||||
|
||||
TIMER_A0->CCR[1] = DUTY_MIN; //COMPARE to duty cycle
|
||||
TIMER_A0->CCTL[1] = OUTMOD_7; //RESET/SET
|
||||
|
||||
TIMER_A0->EX0 = TAIDEX__1; // divide by 1
|
||||
TIMER_A0->CTL = TASSEL__SMCLK | ID__1 | MC__UP;//DOWN; //SMCLK, /1, UP
|
||||
}
|
||||
|
||||
void setup_adc(){
|
||||
ADC14->CTL0 &= ~ADC14_CTL0_ENC; //ADC Disable
|
||||
|
||||
ADC14->CTL0 = ADC14_CTL0_ON; //ADC ON
|
||||
ADC14->CTL0 |= ADC14_CTL0_SSEL__SMCLK; //USE SMCLK
|
||||
|
||||
ADC14->CTL0 |= ADC14_CTL0_CONSEQ_2; //ADC14 Repeat Channel Sampling
|
||||
|
||||
ADC14->CTL0 |= ADC14_CTL0_SHS_1; //USE TA0.1
|
||||
|
||||
ADC14->CTL1 = ADC14_CTL1_RES__14BIT; //14 bit, 16 clk conversion
|
||||
|
||||
ADC14->MCTL[0] = ADC14_MCTLN_VRSEL_0 | ADC14_MCTLN_INCH_13; // A13 ADC & V(R+) = AVCC, V(R-) = AVSS
|
||||
ADC14->IER0 |= ADC14_IER0_IE0; //ADC Interrupt
|
||||
|
||||
ADC14->CTL0 |= ADC14_CTL0_ENC; //ADC Enable
|
||||
}
|
||||
|
||||
|
||||
|
||||
void main(void){
|
||||
DISABLE_WATCHDOG();
|
||||
|
||||
setup_pins();
|
||||
setup_clock();
|
||||
setup_timer_a0();
|
||||
setup_adc();
|
||||
|
||||
SCB->SCR |= SCB_SCR_SLEEPONEXIT_Msk; // Enable sleep on exit from ISR
|
||||
__DSB(); // Ensures SLEEPONEXIT takes effect immediately
|
||||
__enable_irq(); // Enable global interrupt
|
||||
|
||||
NVIC_EnableIRQ(ADC14_IRQn); //ENABLE IRQ ADC14
|
||||
|
||||
__sleep(); //Sleep
|
||||
}
|
||||
|
||||
|
||||
void ADC14_IRQHandler(void) {
|
||||
TIMER_A0->CCR[1] = ADC_TO_T(ADC14->MEM[0]);
|
||||
}
|
||||
|
175
cs473-es/lab1/mbp/main.c
Normal file
175
cs473-es/lab1/mbp/main.c
Normal file
@@ -0,0 +1,175 @@
|
||||
#include "msp.h"
|
||||
#include "math.h"
|
||||
|
||||
// =========================== Convenience functions ===========================
|
||||
|
||||
inline void setmasked32(volatile uint32_t* ptr, uint32_t mask, uint32_t bits) {
|
||||
*ptr = (*ptr & ~mask) | bits;
|
||||
}
|
||||
|
||||
inline void setmasked16(volatile uint16_t* ptr, uint16_t mask, uint16_t bits) {
|
||||
*ptr = (*ptr & ~mask) | bits;
|
||||
}
|
||||
|
||||
inline void clearmasked16(volatile uint16_t* ptr, uint16_t mask) {
|
||||
*ptr &= ~(mask);
|
||||
}
|
||||
|
||||
inline void clearbit32(volatile uint32_t* ptr, unsigned idx) {
|
||||
*ptr &= ~(1 << idx);
|
||||
}
|
||||
|
||||
inline void clearbit16(volatile uint16_t* ptr, unsigned idx) {
|
||||
*ptr &= ~(1 << idx);
|
||||
}
|
||||
|
||||
inline void clearbit8(volatile uint8_t* ptr, unsigned idx) {
|
||||
*ptr &= ~(1 << idx);
|
||||
}
|
||||
|
||||
inline void setbit32(volatile uint32_t* ptr, unsigned idx) {
|
||||
*ptr |= 1 << idx;;
|
||||
}
|
||||
|
||||
inline void setbit16(volatile uint16_t* ptr, unsigned idx) {
|
||||
*ptr |= 1 << idx;;
|
||||
}
|
||||
|
||||
inline void setbit8(volatile uint8_t* ptr, unsigned idx) {
|
||||
*ptr |= 1 << idx;;
|
||||
}
|
||||
|
||||
// =============================================================================
|
||||
|
||||
|
||||
#define ADC_MAX ((1 << 14) - 1) // 14-bit ADC
|
||||
#define ADC_MCTL_IDX (0)
|
||||
#define TIMER_PERIOD 20 // ms
|
||||
#define TIMER_DIV (8)
|
||||
#define TIMER_FCLK 3000000
|
||||
#define TIMER_PERIOD_TICKS (((TIMER_FCLK / TIMER_DIV) * TIMER_PERIOD) / 1000)
|
||||
|
||||
|
||||
void startTimer(Timer_A_Type* timer) {
|
||||
// Select clock source = SMCLK
|
||||
setmasked16(&timer->CTL, TIMER_A_CTL_SSEL_MASK, TIMER_A_CTL_SSEL__SMCLK);
|
||||
|
||||
// Divide by 8*1 (SMCLK defaults to 3000000Hz, dont bother to change it).
|
||||
// Although one should probably use a lower-freq clock if we are in
|
||||
// the millisecond range for interrupts.
|
||||
setmasked16(&timer->EX0, TIMER_A_EX0_IDEX_MASK, TIMER_A_EX0_IDEX__8); // divide by 8
|
||||
|
||||
// CCR0 is set to the full period count.
|
||||
// When CCR0 is met, the timer should reset to 0 and repeat (in UP mode).
|
||||
timer->CCR[0] = TIMER_PERIOD_TICKS;
|
||||
|
||||
// Enable IRQ from timer (caller shall enable corresponding bit in NVIC)
|
||||
setmasked16(&timer->CCTL[0], 1 << TIMER_A_CCTLN_CCIE_OFS,TIMER_A_CCTLN_CCIE);
|
||||
|
||||
// Reset timer
|
||||
clearmasked16(&timer->CCTL[0], TIMER_A_CCTLN_CCIFG);
|
||||
TIMER_A0->R = 0;
|
||||
|
||||
// Start the timer - Count upwards
|
||||
setmasked16(&timer->CTL, TIMER_A_CTL_MC_MASK, TIMER_A_CTL_MC__UP);
|
||||
}
|
||||
|
||||
void enableADC() {
|
||||
// Configure pin 4.0 (A13) as an ADC input
|
||||
clearbit8(&P4->DIR, 0);
|
||||
clearbit8(&P4->SEL0, 1);
|
||||
clearbit8(&P4->SEL1, 1);
|
||||
|
||||
// Enable ADC finish conversion interrupt
|
||||
NVIC_EnableIRQ(ADC14_IRQn);
|
||||
|
||||
// Set voltage reference from rail to rail
|
||||
setmasked32(&ADC14->MCTL[ADC_MCTL_IDX], ADC14_MCTLN_VRSEL_MASK, ADC14_MCTLN_VRSEL_0);
|
||||
|
||||
// Non-difference mode
|
||||
clearbit32(&ADC14->MCTL[ADC_MCTL_IDX], ADC14_MCTLN_DIF_OFS);
|
||||
|
||||
// Input channel
|
||||
setmasked32(&ADC14->MCTL[ADC_MCTL_IDX], ADC14_MCTLN_INCH_MASK, ADC14_MCTLN_INCH_13);
|
||||
setmasked32(&ADC14->CTL1, ADC14_CTL1_CSTARTADD_MASK, ADC_MCTL_IDX << ADC14_CTL1_CSTARTADD_OFS);
|
||||
|
||||
// Enable the channel 0 interrupt
|
||||
setbit32(&ADC14->IER0, ADC14_IER0_IE0_OFS);
|
||||
|
||||
// This is a >software triggered< adc routine (convert when requested)
|
||||
setmasked32(&ADC14->CTL0, ADC14_CTL0_SHS_MASK, ADC14_CTL0_SHS_0);
|
||||
|
||||
// Mega-speed is not ultra important so set clock source to ACLK
|
||||
setmasked32(&ADC14->CTL0, ADC14_CTL0_SSEL_MASK, ADC14_CTL0_SSEL_2);
|
||||
|
||||
// Enable conversion
|
||||
setbit32(&ADC14->CTL0, ADC14_CTL0_ON_OFS);
|
||||
setbit32(&ADC14->CTL0, ADC14_CTL0_ENC_OFS);
|
||||
}
|
||||
|
||||
void setAngle(float ratio) {
|
||||
// We work in microseconds to have the appropriate precision.
|
||||
// This allows a range of 1000 different angles (1000us to 2000 us).
|
||||
const unsigned duty_period_us = (1000 /* 1ms = 0 degrees */ + 1000 * ratio);
|
||||
const unsigned duty_ticks = ((TIMER_FCLK / TIMER_DIV) * duty_period_us) / 1000000;
|
||||
|
||||
// Finally, write the new duty cycle tick count to TA0.CCR1
|
||||
TIMER_A0->CCR[1] = TIMER_PERIOD_TICKS - duty_ticks;
|
||||
}
|
||||
|
||||
|
||||
void ADC14_IRQHandler() {
|
||||
// Adjust duty cycle of PWM
|
||||
const float ratio = ((float)(ADC14->MEM[ADC_MCTL_IDX]) / ADC_MAX);
|
||||
setAngle(ratio);
|
||||
}
|
||||
|
||||
void TA1_0_IRQHandler() {
|
||||
// Initiate software-controlled ADC conversion
|
||||
setbit32(&ADC14->CTL0, ADC14_CTL0_SC_OFS);
|
||||
clearbit32(&ADC14->CTL0, ADC14_CTL0_SC_OFS);
|
||||
}
|
||||
|
||||
void motorController() {
|
||||
// Step 1: Enable ADC
|
||||
enableADC();
|
||||
startTimer(TIMER_A0); // PWM timer
|
||||
startTimer(TIMER_A1); // ADC sampling trigger timer (software triggered)
|
||||
|
||||
|
||||
// Enable PWM output of TA0.1
|
||||
// Compare mode is required to generate PWM signals.
|
||||
// Compare mode => capture mode is disables => CAP = 0
|
||||
clearbit16(&TIMER_A0->CCTL[1], TIMER_A_CCTLN_CAP_OFS);
|
||||
|
||||
|
||||
// Enable output for reg1 of timer 0 (P2.4)
|
||||
setbit8(&P2->DIR, 4);
|
||||
setbit8(&P2->SEL0, 4);
|
||||
clearbit8(&P2->SEL1, 4);
|
||||
|
||||
// Next, we need to configure the output unit of the capture/compare
|
||||
// block to generate the proper PWM signal. The PWM is defined by
|
||||
// using the set/reset output mode (note: we are creating a
|
||||
// sawtooth wave and NOT a triangle wave).
|
||||
setmasked16(&TIMER_A0->CCTL[1], TIMER_A_CCTLN_OUTMOD_MASK, TIMER_A_CCTLN_OUTMOD_3);
|
||||
|
||||
// Enable timer interrupts in NVIC
|
||||
NVIC_EnableIRQ(TA1_0_IRQn);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* main.c
|
||||
*/
|
||||
void main(void)
|
||||
{
|
||||
WDT_A->CTL = WDT_A_CTL_PW | WDT_A_CTL_HOLD; // stop watchdog timer
|
||||
|
||||
// Program clock system
|
||||
CS->KEY = CS_KEY_VAL;
|
||||
// ....
|
||||
CS->KEY = 0xdeadbeef;
|
||||
|
||||
motorController();
|
||||
}
|
120
cs473-es/lab2/ch/hw/hdl/DE0_Nano_SoC_LT24_top_level.vhd
Normal file
120
cs473-es/lab2/ch/hw/hdl/DE0_Nano_SoC_LT24_top_level.vhd
Normal file
@@ -0,0 +1,120 @@
|
||||
-- #############################################################################
|
||||
-- DE0_Nano_SoC_LT24_top_level.vhd
|
||||
--
|
||||
-- BOARD : DE0-Nano-SoC from Terasic
|
||||
-- Author : Sahand Kashani-Akhavan from Terasic documentation
|
||||
-- Revision : 1.2
|
||||
-- Creation date : 11/06/2015
|
||||
--
|
||||
-- Syntax Rule : GROUP_NAME_N[bit]
|
||||
--
|
||||
-- GROUP : specify a particular interface (ex: SDR_)
|
||||
-- NAME : signal name (ex: CONFIG, D, ...)
|
||||
-- bit : signal index
|
||||
-- _N : to specify an active-low signal
|
||||
-- #############################################################################
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
|
||||
entity DE0_Nano_SoC_LT24_top_level is
|
||||
port(
|
||||
-- ADC
|
||||
ADC_CONVST : out std_logic;
|
||||
ADC_SCK : out std_logic;
|
||||
ADC_SDI : out std_logic;
|
||||
ADC_SDO : in std_logic;
|
||||
|
||||
-- ARDUINO
|
||||
ARDUINO_IO : inout std_logic_vector(15 downto 0);
|
||||
ARDUINO_RESET_N : inout std_logic;
|
||||
|
||||
-- CLOCK
|
||||
FPGA_CLK1_50 : in std_logic;
|
||||
FPGA_CLK2_50 : in std_logic;
|
||||
FPGA_CLK3_50 : in std_logic;
|
||||
|
||||
-- KEY
|
||||
KEY_N : in std_logic_vector(1 downto 0);
|
||||
|
||||
-- LED
|
||||
LED : out std_logic_vector(7 downto 0);
|
||||
|
||||
-- SW
|
||||
SW : in std_logic_vector(3 downto 0);
|
||||
|
||||
-- GPIO_0
|
||||
GPIO_0_LT24_ADC_BUSY : in std_logic;
|
||||
GPIO_0_LT24_ADC_CS_N : out std_logic;
|
||||
GPIO_0_LT24_ADC_DCLK : out std_logic;
|
||||
GPIO_0_LT24_ADC_DIN : out std_logic;
|
||||
GPIO_0_LT24_ADC_DOUT : in std_logic;
|
||||
GPIO_0_LT24_ADC_PENIRQ_N : in std_logic;
|
||||
GPIO_0_LT24_CS_N : out std_logic;
|
||||
GPIO_0_LT24_D : out std_logic_vector(15 downto 0);
|
||||
GPIO_0_LT24_LCD_ON : out std_logic;
|
||||
GPIO_0_LT24_RD_N : out std_logic;
|
||||
GPIO_0_LT24_RESET_N : out std_logic;
|
||||
GPIO_0_LT24_RS : out std_logic;
|
||||
GPIO_0_LT24_WR_N : out std_logic;
|
||||
|
||||
-- GPIO_1
|
||||
GPIO_1 : inout std_logic_vector(35 downto 0);
|
||||
|
||||
-- HPS
|
||||
HPS_CONV_USB_N : inout std_logic;
|
||||
HPS_DDR3_ADDR : out std_logic_vector(14 downto 0);
|
||||
HPS_DDR3_BA : out std_logic_vector(2 downto 0);
|
||||
HPS_DDR3_CAS_N : out std_logic;
|
||||
HPS_DDR3_CK_N : out std_logic;
|
||||
HPS_DDR3_CK_P : out std_logic;
|
||||
HPS_DDR3_CKE : out std_logic;
|
||||
HPS_DDR3_CS_N : out std_logic;
|
||||
HPS_DDR3_DM : out std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQ : inout std_logic_vector(31 downto 0);
|
||||
HPS_DDR3_DQS_N : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQS_P : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_ODT : out std_logic;
|
||||
HPS_DDR3_RAS_N : out std_logic;
|
||||
HPS_DDR3_RESET_N : out std_logic;
|
||||
HPS_DDR3_RZQ : in std_logic;
|
||||
HPS_DDR3_WE_N : out std_logic;
|
||||
HPS_ENET_GTX_CLK : out std_logic;
|
||||
HPS_ENET_INT_N : inout std_logic;
|
||||
HPS_ENET_MDC : out std_logic;
|
||||
HPS_ENET_MDIO : inout std_logic;
|
||||
HPS_ENET_RX_CLK : in std_logic;
|
||||
HPS_ENET_RX_DATA : in std_logic_vector(3 downto 0);
|
||||
HPS_ENET_RX_DV : in std_logic;
|
||||
HPS_ENET_TX_DATA : out std_logic_vector(3 downto 0);
|
||||
HPS_ENET_TX_EN : out std_logic;
|
||||
HPS_GSENSOR_INT : inout std_logic;
|
||||
HPS_I2C0_SCLK : inout std_logic;
|
||||
HPS_I2C0_SDAT : inout std_logic;
|
||||
HPS_I2C1_SCLK : inout std_logic;
|
||||
HPS_I2C1_SDAT : inout std_logic;
|
||||
HPS_KEY_N : inout std_logic;
|
||||
HPS_LED : inout std_logic;
|
||||
HPS_LTC_GPIO : inout std_logic;
|
||||
HPS_SD_CLK : out std_logic;
|
||||
HPS_SD_CMD : inout std_logic;
|
||||
HPS_SD_DATA : inout std_logic_vector(3 downto 0);
|
||||
HPS_SPIM_CLK : out std_logic;
|
||||
HPS_SPIM_MISO : in std_logic;
|
||||
HPS_SPIM_MOSI : out std_logic;
|
||||
HPS_SPIM_SS : inout std_logic;
|
||||
HPS_UART_RX : in std_logic;
|
||||
HPS_UART_TX : out std_logic;
|
||||
HPS_USB_CLKOUT : in std_logic;
|
||||
HPS_USB_DATA : inout std_logic_vector(7 downto 0);
|
||||
HPS_USB_DIR : in std_logic;
|
||||
HPS_USB_NXT : in std_logic;
|
||||
HPS_USB_STP : out std_logic
|
||||
);
|
||||
end entity DE0_Nano_SoC_LT24_top_level;
|
||||
|
||||
architecture rtl of DE0_Nano_SoC_LT24_top_level is
|
||||
|
||||
begin
|
||||
|
||||
end;
|
129
cs473-es/lab2/ch/hw/hdl/DE0_Nano_SoC_TRDB_D5M_LT24_top_level.vhd
Normal file
129
cs473-es/lab2/ch/hw/hdl/DE0_Nano_SoC_TRDB_D5M_LT24_top_level.vhd
Normal file
@@ -0,0 +1,129 @@
|
||||
-- #############################################################################
|
||||
-- DE0_Nano_SoC_TRDB_D5M_LT24_top_level.vhd
|
||||
--
|
||||
-- BOARD : DE0-Nano-SoC from Terasic
|
||||
-- Author : Sahand Kashani-Akhavan from Terasic documentation
|
||||
-- Revision : 1.3
|
||||
-- Creation date : 11/06/2015
|
||||
--
|
||||
-- Syntax Rule : GROUP_NAME_N[bit]
|
||||
--
|
||||
-- GROUP : specify a particular interface (ex: SDR_)
|
||||
-- NAME : signal name (ex: CONFIG, D, ...)
|
||||
-- bit : signal index
|
||||
-- _N : to specify an active-low signal
|
||||
-- #############################################################################
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
|
||||
entity DE0_Nano_SoC_TRDB_D5M_LT24_top_level is
|
||||
port(
|
||||
-- ADC
|
||||
ADC_CONVST : out std_logic;
|
||||
ADC_SCK : out std_logic;
|
||||
ADC_SDI : out std_logic;
|
||||
ADC_SDO : in std_logic;
|
||||
|
||||
-- ARDUINO
|
||||
ARDUINO_IO : inout std_logic_vector(15 downto 0);
|
||||
ARDUINO_RESET_N : inout std_logic;
|
||||
|
||||
-- CLOCK
|
||||
FPGA_CLK1_50 : in std_logic;
|
||||
FPGA_CLK2_50 : in std_logic;
|
||||
FPGA_CLK3_50 : in std_logic;
|
||||
|
||||
-- KEY
|
||||
KEY_N : in std_logic_vector(1 downto 0);
|
||||
|
||||
-- LED
|
||||
LED : out std_logic_vector(7 downto 0);
|
||||
|
||||
-- SW
|
||||
SW : in std_logic_vector(3 downto 0);
|
||||
|
||||
-- GPIO_0
|
||||
GPIO_0_LT24_ADC_BUSY : in std_logic;
|
||||
GPIO_0_LT24_ADC_CS_N : out std_logic;
|
||||
GPIO_0_LT24_ADC_DCLK : out std_logic;
|
||||
GPIO_0_LT24_ADC_DIN : out std_logic;
|
||||
GPIO_0_LT24_ADC_DOUT : in std_logic;
|
||||
GPIO_0_LT24_ADC_PENIRQ_N : in std_logic;
|
||||
GPIO_0_LT24_CS_N : out std_logic;
|
||||
GPIO_0_LT24_D : out std_logic_vector(15 downto 0);
|
||||
GPIO_0_LT24_LCD_ON : out std_logic;
|
||||
GPIO_0_LT24_RD_N : out std_logic;
|
||||
GPIO_0_LT24_RESET_N : out std_logic;
|
||||
GPIO_0_LT24_RS : out std_logic;
|
||||
GPIO_0_LT24_WR_N : out std_logic;
|
||||
|
||||
-- GPIO_1
|
||||
GPIO_1_D5M_D : in std_logic_vector(11 downto 0);
|
||||
GPIO_1_D5M_FVAL : in std_logic;
|
||||
GPIO_1_D5M_LVAL : in std_logic;
|
||||
GPIO_1_D5M_PIXCLK : in std_logic;
|
||||
GPIO_1_D5M_RESET_N : out std_logic;
|
||||
GPIO_1_D5M_SCLK : inout std_logic;
|
||||
GPIO_1_D5M_SDATA : inout std_logic;
|
||||
GPIO_1_D5M_STROBE : in std_logic;
|
||||
GPIO_1_D5M_TRIGGER : out std_logic;
|
||||
GPIO_1_D5M_XCLKIN : out std_logic;
|
||||
|
||||
-- HPS
|
||||
HPS_CONV_USB_N : inout std_logic;
|
||||
HPS_DDR3_ADDR : out std_logic_vector(14 downto 0);
|
||||
HPS_DDR3_BA : out std_logic_vector(2 downto 0);
|
||||
HPS_DDR3_CAS_N : out std_logic;
|
||||
HPS_DDR3_CK_N : out std_logic;
|
||||
HPS_DDR3_CK_P : out std_logic;
|
||||
HPS_DDR3_CKE : out std_logic;
|
||||
HPS_DDR3_CS_N : out std_logic;
|
||||
HPS_DDR3_DM : out std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQ : inout std_logic_vector(31 downto 0);
|
||||
HPS_DDR3_DQS_N : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQS_P : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_ODT : out std_logic;
|
||||
HPS_DDR3_RAS_N : out std_logic;
|
||||
HPS_DDR3_RESET_N : out std_logic;
|
||||
HPS_DDR3_RZQ : in std_logic;
|
||||
HPS_DDR3_WE_N : out std_logic;
|
||||
HPS_ENET_GTX_CLK : out std_logic;
|
||||
HPS_ENET_INT_N : inout std_logic;
|
||||
HPS_ENET_MDC : out std_logic;
|
||||
HPS_ENET_MDIO : inout std_logic;
|
||||
HPS_ENET_RX_CLK : in std_logic;
|
||||
HPS_ENET_RX_DATA : in std_logic_vector(3 downto 0);
|
||||
HPS_ENET_RX_DV : in std_logic;
|
||||
HPS_ENET_TX_DATA : out std_logic_vector(3 downto 0);
|
||||
HPS_ENET_TX_EN : out std_logic;
|
||||
HPS_GSENSOR_INT : inout std_logic;
|
||||
HPS_I2C0_SCLK : inout std_logic;
|
||||
HPS_I2C0_SDAT : inout std_logic;
|
||||
HPS_I2C1_SCLK : inout std_logic;
|
||||
HPS_I2C1_SDAT : inout std_logic;
|
||||
HPS_KEY_N : inout std_logic;
|
||||
HPS_LED : inout std_logic;
|
||||
HPS_LTC_GPIO : inout std_logic;
|
||||
HPS_SD_CLK : out std_logic;
|
||||
HPS_SD_CMD : inout std_logic;
|
||||
HPS_SD_DATA : inout std_logic_vector(3 downto 0);
|
||||
HPS_SPIM_CLK : out std_logic;
|
||||
HPS_SPIM_MISO : in std_logic;
|
||||
HPS_SPIM_MOSI : out std_logic;
|
||||
HPS_SPIM_SS : inout std_logic;
|
||||
HPS_UART_RX : in std_logic;
|
||||
HPS_UART_TX : out std_logic;
|
||||
HPS_USB_CLKOUT : in std_logic;
|
||||
HPS_USB_DATA : inout std_logic_vector(7 downto 0);
|
||||
HPS_USB_DIR : in std_logic;
|
||||
HPS_USB_NXT : in std_logic;
|
||||
HPS_USB_STP : out std_logic
|
||||
);
|
||||
end entity DE0_Nano_SoC_TRDB_D5M_LT24_top_level;
|
||||
|
||||
architecture rtl of DE0_Nano_SoC_TRDB_D5M_LT24_top_level is
|
||||
|
||||
begin
|
||||
|
||||
end;
|
125
cs473-es/lab2/ch/hw/hdl/DE0_Nano_SoC_TRDB_D5M_VGA_top_level.vhd
Normal file
125
cs473-es/lab2/ch/hw/hdl/DE0_Nano_SoC_TRDB_D5M_VGA_top_level.vhd
Normal file
@@ -0,0 +1,125 @@
|
||||
-- #############################################################################
|
||||
-- DE0_Nano_SoC_TRDB_D5M_VGA_top_level.vhd
|
||||
--
|
||||
-- BOARD : DE0-Nano-SoC from Terasic
|
||||
-- Author : Sahand Kashani-Akhavan from Terasic documentation
|
||||
-- Revision : 1.2
|
||||
-- Creation date : 11/06/2015
|
||||
--
|
||||
-- Syntax Rule : GROUP_NAME_N[bit]
|
||||
--
|
||||
-- GROUP : specify a particular interface (ex: SDR_)
|
||||
-- NAME : signal name (ex: CONFIG, D, ...)
|
||||
-- bit : signal index
|
||||
-- _N : to specify an active-low signal
|
||||
-- #############################################################################
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
|
||||
entity DE0_Nano_SoC_TRDB_D5M_VGA_top_level is
|
||||
port(
|
||||
-- ADC
|
||||
ADC_CONVST : out std_logic;
|
||||
ADC_SCK : out std_logic;
|
||||
ADC_SDI : out std_logic;
|
||||
ADC_SDO : in std_logic;
|
||||
|
||||
-- ARDUINO
|
||||
ARDUINO_IO : inout std_logic_vector(15 downto 0);
|
||||
ARDUINO_RESET_N : inout std_logic;
|
||||
|
||||
-- CLOCK
|
||||
FPGA_CLK1_50 : in std_logic;
|
||||
FPGA_CLK2_50 : in std_logic;
|
||||
FPGA_CLK3_50 : in std_logic;
|
||||
|
||||
-- KEY
|
||||
KEY_N : in std_logic_vector(1 downto 0);
|
||||
|
||||
-- LED
|
||||
LED : out std_logic_vector(7 downto 0);
|
||||
|
||||
-- SW
|
||||
SW : in std_logic_vector(3 downto 0);
|
||||
|
||||
-- GPIO_0
|
||||
GPIO_0_VGA_VIDEO_R : out std_logic_vector(7 downto 0);
|
||||
GPIO_0_VGA_VIDEO_G : out std_logic_vector(7 downto 0);
|
||||
GPIO_0_VGA_VIDEO_B : out std_logic_vector(7 downto 0);
|
||||
GPIO_0_VGA_VIDEO_HSYNC : out std_logic;
|
||||
GPIO_0_VGA_VIDEO_VSYNC : out std_logic;
|
||||
GPIO_0_VGA_VIDEO_CLK : out std_logic;
|
||||
GPIO_0_VGA_CAM_PAL_VGA_SCL : out std_logic;
|
||||
GPIO_0_VGA_CAM_PAL_VGA_SDA : inout std_logic;
|
||||
GPIO_0_VGA_BOARD_ID : inout std_logic;
|
||||
|
||||
-- GPIO_1
|
||||
GPIO_1_D5M_D : in std_logic_vector(11 downto 0);
|
||||
GPIO_1_D5M_FVAL : in std_logic;
|
||||
GPIO_1_D5M_LVAL : in std_logic;
|
||||
GPIO_1_D5M_PIXCLK : in std_logic;
|
||||
GPIO_1_D5M_RESET_N : out std_logic;
|
||||
GPIO_1_D5M_SCLK : inout std_logic;
|
||||
GPIO_1_D5M_SDATA : inout std_logic;
|
||||
GPIO_1_D5M_STROBE : in std_logic;
|
||||
GPIO_1_D5M_TRIGGER : out std_logic;
|
||||
GPIO_1_D5M_XCLKIN : out std_logic;
|
||||
|
||||
-- HPS
|
||||
HPS_CONV_USB_N : inout std_logic;
|
||||
HPS_DDR3_ADDR : out std_logic_vector(14 downto 0);
|
||||
HPS_DDR3_BA : out std_logic_vector(2 downto 0);
|
||||
HPS_DDR3_CAS_N : out std_logic;
|
||||
HPS_DDR3_CK_N : out std_logic;
|
||||
HPS_DDR3_CK_P : out std_logic;
|
||||
HPS_DDR3_CKE : out std_logic;
|
||||
HPS_DDR3_CS_N : out std_logic;
|
||||
HPS_DDR3_DM : out std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQ : inout std_logic_vector(31 downto 0);
|
||||
HPS_DDR3_DQS_N : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQS_P : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_ODT : out std_logic;
|
||||
HPS_DDR3_RAS_N : out std_logic;
|
||||
HPS_DDR3_RESET_N : out std_logic;
|
||||
HPS_DDR3_RZQ : in std_logic;
|
||||
HPS_DDR3_WE_N : out std_logic;
|
||||
HPS_ENET_GTX_CLK : out std_logic;
|
||||
HPS_ENET_INT_N : inout std_logic;
|
||||
HPS_ENET_MDC : out std_logic;
|
||||
HPS_ENET_MDIO : inout std_logic;
|
||||
HPS_ENET_RX_CLK : in std_logic;
|
||||
HPS_ENET_RX_DATA : in std_logic_vector(3 downto 0);
|
||||
HPS_ENET_RX_DV : in std_logic;
|
||||
HPS_ENET_TX_DATA : out std_logic_vector(3 downto 0);
|
||||
HPS_ENET_TX_EN : out std_logic;
|
||||
HPS_GSENSOR_INT : inout std_logic;
|
||||
HPS_I2C0_SCLK : inout std_logic;
|
||||
HPS_I2C0_SDAT : inout std_logic;
|
||||
HPS_I2C1_SCLK : inout std_logic;
|
||||
HPS_I2C1_SDAT : inout std_logic;
|
||||
HPS_KEY_N : inout std_logic;
|
||||
HPS_LED : inout std_logic;
|
||||
HPS_LTC_GPIO : inout std_logic;
|
||||
HPS_SD_CLK : out std_logic;
|
||||
HPS_SD_CMD : inout std_logic;
|
||||
HPS_SD_DATA : inout std_logic_vector(3 downto 0);
|
||||
HPS_SPIM_CLK : out std_logic;
|
||||
HPS_SPIM_MISO : in std_logic;
|
||||
HPS_SPIM_MOSI : out std_logic;
|
||||
HPS_SPIM_SS : inout std_logic;
|
||||
HPS_UART_RX : in std_logic;
|
||||
HPS_UART_TX : out std_logic;
|
||||
HPS_USB_CLKOUT : in std_logic;
|
||||
HPS_USB_DATA : inout std_logic_vector(7 downto 0);
|
||||
HPS_USB_DIR : in std_logic;
|
||||
HPS_USB_NXT : in std_logic;
|
||||
HPS_USB_STP : out std_logic
|
||||
);
|
||||
end entity DE0_Nano_SoC_TRDB_D5M_VGA_top_level;
|
||||
|
||||
architecture rtl of DE0_Nano_SoC_TRDB_D5M_VGA_top_level is
|
||||
|
||||
begin
|
||||
|
||||
end;
|
117
cs473-es/lab2/ch/hw/hdl/DE0_Nano_SoC_TRDB_D5M_top_level.vhd
Normal file
117
cs473-es/lab2/ch/hw/hdl/DE0_Nano_SoC_TRDB_D5M_top_level.vhd
Normal file
@@ -0,0 +1,117 @@
|
||||
-- #############################################################################
|
||||
-- DE0_Nano_SoC_TRDB_D5M_top_level.vhd
|
||||
--
|
||||
-- BOARD : DE0-Nano-SoC from Terasic
|
||||
-- Author : Sahand Kashani-Akhavan from Terasic documentation
|
||||
-- Revision : 1.3
|
||||
-- Creation date : 11/06/2015
|
||||
--
|
||||
-- Syntax Rule : GROUP_NAME_N[bit]
|
||||
--
|
||||
-- GROUP : specify a particular interface (ex: SDR_)
|
||||
-- NAME : signal name (ex: CONFIG, D, ...)
|
||||
-- bit : signal index
|
||||
-- _N : to specify an active-low signal
|
||||
-- #############################################################################
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
|
||||
entity DE0_Nano_SoC_TRDB_D5M_top_level is
|
||||
port(
|
||||
-- ADC
|
||||
ADC_CONVST : out std_logic;
|
||||
ADC_SCK : out std_logic;
|
||||
ADC_SDI : out std_logic;
|
||||
ADC_SDO : in std_logic;
|
||||
|
||||
-- ARDUINO
|
||||
ARDUINO_IO : inout std_logic_vector(15 downto 0);
|
||||
ARDUINO_RESET_N : inout std_logic;
|
||||
|
||||
-- CLOCK
|
||||
FPGA_CLK1_50 : in std_logic;
|
||||
FPGA_CLK2_50 : in std_logic;
|
||||
FPGA_CLK3_50 : in std_logic;
|
||||
|
||||
-- KEY
|
||||
KEY_N : in std_logic_vector(1 downto 0);
|
||||
|
||||
-- LED
|
||||
LED : out std_logic_vector(7 downto 0);
|
||||
|
||||
-- SW
|
||||
SW : in std_logic_vector(3 downto 0);
|
||||
|
||||
-- GPIO_0
|
||||
GPIO_0 : inout std_logic_vector(35 downto 0);
|
||||
|
||||
-- GPIO_1
|
||||
GPIO_1_D5M_D : in std_logic_vector(11 downto 0);
|
||||
GPIO_1_D5M_FVAL : in std_logic;
|
||||
GPIO_1_D5M_LVAL : in std_logic;
|
||||
GPIO_1_D5M_PIXCLK : in std_logic;
|
||||
GPIO_1_D5M_RESET_N : out std_logic;
|
||||
GPIO_1_D5M_SCLK : inout std_logic;
|
||||
GPIO_1_D5M_SDATA : inout std_logic;
|
||||
GPIO_1_D5M_STROBE : in std_logic;
|
||||
GPIO_1_D5M_TRIGGER : out std_logic;
|
||||
GPIO_1_D5M_XCLKIN : out std_logic;
|
||||
|
||||
-- HPS
|
||||
HPS_CONV_USB_N : inout std_logic;
|
||||
HPS_DDR3_ADDR : out std_logic_vector(14 downto 0);
|
||||
HPS_DDR3_BA : out std_logic_vector(2 downto 0);
|
||||
HPS_DDR3_CAS_N : out std_logic;
|
||||
HPS_DDR3_CK_N : out std_logic;
|
||||
HPS_DDR3_CK_P : out std_logic;
|
||||
HPS_DDR3_CKE : out std_logic;
|
||||
HPS_DDR3_CS_N : out std_logic;
|
||||
HPS_DDR3_DM : out std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQ : inout std_logic_vector(31 downto 0);
|
||||
HPS_DDR3_DQS_N : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQS_P : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_ODT : out std_logic;
|
||||
HPS_DDR3_RAS_N : out std_logic;
|
||||
HPS_DDR3_RESET_N : out std_logic;
|
||||
HPS_DDR3_RZQ : in std_logic;
|
||||
HPS_DDR3_WE_N : out std_logic;
|
||||
HPS_ENET_GTX_CLK : out std_logic;
|
||||
HPS_ENET_INT_N : inout std_logic;
|
||||
HPS_ENET_MDC : out std_logic;
|
||||
HPS_ENET_MDIO : inout std_logic;
|
||||
HPS_ENET_RX_CLK : in std_logic;
|
||||
HPS_ENET_RX_DATA : in std_logic_vector(3 downto 0);
|
||||
HPS_ENET_RX_DV : in std_logic;
|
||||
HPS_ENET_TX_DATA : out std_logic_vector(3 downto 0);
|
||||
HPS_ENET_TX_EN : out std_logic;
|
||||
HPS_GSENSOR_INT : inout std_logic;
|
||||
HPS_I2C0_SCLK : inout std_logic;
|
||||
HPS_I2C0_SDAT : inout std_logic;
|
||||
HPS_I2C1_SCLK : inout std_logic;
|
||||
HPS_I2C1_SDAT : inout std_logic;
|
||||
HPS_KEY_N : inout std_logic;
|
||||
HPS_LED : inout std_logic;
|
||||
HPS_LTC_GPIO : inout std_logic;
|
||||
HPS_SD_CLK : out std_logic;
|
||||
HPS_SD_CMD : inout std_logic;
|
||||
HPS_SD_DATA : inout std_logic_vector(3 downto 0);
|
||||
HPS_SPIM_CLK : out std_logic;
|
||||
HPS_SPIM_MISO : in std_logic;
|
||||
HPS_SPIM_MOSI : out std_logic;
|
||||
HPS_SPIM_SS : inout std_logic;
|
||||
HPS_UART_RX : in std_logic;
|
||||
HPS_UART_TX : out std_logic;
|
||||
HPS_USB_CLKOUT : in std_logic;
|
||||
HPS_USB_DATA : inout std_logic_vector(7 downto 0);
|
||||
HPS_USB_DIR : in std_logic;
|
||||
HPS_USB_NXT : in std_logic;
|
||||
HPS_USB_STP : out std_logic
|
||||
);
|
||||
end entity DE0_Nano_SoC_TRDB_D5M_top_level;
|
||||
|
||||
architecture rtl of DE0_Nano_SoC_TRDB_D5M_top_level is
|
||||
|
||||
begin
|
||||
|
||||
end;
|
123
cs473-es/lab2/ch/hw/hdl/DE0_Nano_SoC_top_level.vhd
Normal file
123
cs473-es/lab2/ch/hw/hdl/DE0_Nano_SoC_top_level.vhd
Normal file
@@ -0,0 +1,123 @@
|
||||
-- #############################################################################
|
||||
-- DE0_Nano_SoC_top_level.vhd
|
||||
--
|
||||
-- BOARD : DE0-Nano-SoC from Terasic
|
||||
-- Author : Sahand Kashani-Akhavan from Terasic documentation
|
||||
-- Revision : 1.1
|
||||
-- Creation date : 11/06/2015
|
||||
--
|
||||
-- Syntax Rule : GROUP_NAME_N[bit]
|
||||
--
|
||||
-- GROUP : specify a particular interface (ex: SDR_)
|
||||
-- NAME : signal name (ex: CONFIG, D, ...)
|
||||
-- bit : signal index
|
||||
-- _N : to specify an active-low signal
|
||||
-- #############################################################################
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
|
||||
entity DE0_Nano_SoC_top_level is
|
||||
port(
|
||||
-- ADC
|
||||
--ADC_CONVST : out std_logic;
|
||||
--ADC_SCK : out std_logic;
|
||||
--ADC_SDI : out std_logic;
|
||||
--ADC_SDO : in std_logic;
|
||||
|
||||
-- ARDUINO
|
||||
--ARDUINO_IO : inout std_logic_vector(15 downto 0);
|
||||
--ARDUINO_RESET_N : inout std_logic;
|
||||
|
||||
-- CLOCK
|
||||
FPGA_CLK1_50 : in std_logic;
|
||||
--FPGA_CLK2_50 : in std_logic;
|
||||
--FPGA_CLK3_50 : in std_logic;
|
||||
|
||||
-- KEY
|
||||
KEY_N : in std_logic_vector(1 downto 0);
|
||||
|
||||
-- LED
|
||||
--LED : out std_logic_vector(7 downto 0);
|
||||
|
||||
-- SW
|
||||
--SW : in std_logic_vector(3 downto 0);
|
||||
|
||||
-- GPIO_0
|
||||
GPIO_0 : inout std_logic_vector(35 downto 0)
|
||||
|
||||
-- GPIO_1
|
||||
--GPIO_1 : inout std_logic_vector(35 downto 0);
|
||||
|
||||
-- HPS
|
||||
--HPS_CONV_USB_N : inout std_logic;
|
||||
--HPS_DDR3_ADDR : out std_logic_vector(14 downto 0);
|
||||
--HPS_DDR3_BA : out std_logic_vector(2 downto 0);
|
||||
--HPS_DDR3_CAS_N : out std_logic;
|
||||
--HPS_DDR3_CK_N : out std_logic;
|
||||
--HPS_DDR3_CK_P : out std_logic;
|
||||
--HPS_DDR3_CKE : out std_logic;
|
||||
--HPS_DDR3_CS_N : out std_logic;
|
||||
--HPS_DDR3_DM : out std_logic_vector(3 downto 0);
|
||||
--HPS_DDR3_DQ : inout std_logic_vector(31 downto 0);
|
||||
--HPS_DDR3_DQS_N : inout std_logic_vector(3 downto 0);
|
||||
--HPS_DDR3_DQS_P : inout std_logic_vector(3 downto 0);
|
||||
--HPS_DDR3_ODT : out std_logic;
|
||||
--HPS_DDR3_RAS_N : out std_logic;
|
||||
--HPS_DDR3_RESET_N : out std_logic;
|
||||
--HPS_DDR3_RZQ : in std_logic;
|
||||
--HPS_DDR3_WE_N : out std_logic;
|
||||
--HPS_ENET_GTX_CLK : out std_logic;
|
||||
--HPS_ENET_INT_N : inout std_logic;
|
||||
--HPS_ENET_MDC : out std_logic;
|
||||
--HPS_ENET_MDIO : inout std_logic;
|
||||
--HPS_ENET_RX_CLK : in std_logic;
|
||||
--HPS_ENET_RX_DATA : in std_logic_vector(3 downto 0);
|
||||
--HPS_ENET_RX_DV : in std_logic;
|
||||
--HPS_ENET_TX_DATA : out std_logic_vector(3 downto 0);
|
||||
--HPS_ENET_TX_EN : out std_logic;
|
||||
--HPS_GSENSOR_INT : inout std_logic;
|
||||
--HPS_I2C0_SCLK : inout std_logic;
|
||||
--HPS_I2C0_SDAT : inout std_logic;
|
||||
--HPS_I2C1_SCLK : inout std_logic;
|
||||
--HPS_I2C1_SDAT : inout std_logic;
|
||||
--HPS_KEY_N : inout std_logic;
|
||||
--HPS_LED : inout std_logic;
|
||||
--HPS_LTC_GPIO : inout std_logic;
|
||||
--HPS_SD_CLK : out std_logic;
|
||||
--HPS_SD_CMD : inout std_logic;
|
||||
--HPS_SD_DATA : inout std_logic_vector(3 downto 0);
|
||||
--HPS_SPIM_CLK : out std_logic;
|
||||
--HPS_SPIM_MISO : in std_logic;
|
||||
--HPS_SPIM_MOSI : out std_logic;
|
||||
--HPS_SPIM_SS : inout std_logic;
|
||||
--HPS_UART_RX : in std_logic;
|
||||
--HPS_UART_TX : out std_logic;
|
||||
--HPS_USB_CLKOUT : in std_logic;
|
||||
--HPS_USB_DATA : inout std_logic_vector(7 downto 0);
|
||||
--HPS_USB_DIR : in std_logic;
|
||||
--HPS_USB_NXT : in std_logic;
|
||||
--HPS_USB_STP : out std_logic
|
||||
);
|
||||
end entity DE0_Nano_SoC_top_level;
|
||||
|
||||
architecture rtl of DE0_Nano_SoC_top_level is
|
||||
|
||||
component system is
|
||||
port (
|
||||
clk_clk : in std_logic := 'X'; -- clk
|
||||
reset_reset_n : in std_logic := 'X'; -- reset_n
|
||||
ws28xx_0_conduit_end_ws : out std_logic := 'X' -- export
|
||||
);
|
||||
end component system;
|
||||
|
||||
|
||||
|
||||
begin
|
||||
u0 : component system
|
||||
port map (
|
||||
clk_clk => FPGA_CLK1_50, -- clk.clk
|
||||
reset_reset_n => KEY_N(0), -- reset.reset_n
|
||||
ws28xx_0_conduit_end_ws => GPIO_0(0) -- ws28xx_0_conduit_end.export
|
||||
);
|
||||
end;
|
114
cs473-es/lab2/ch/hw/hdl/DE0_Nano_Soc_7_segment_extension.vhd
Normal file
114
cs473-es/lab2/ch/hw/hdl/DE0_Nano_Soc_7_segment_extension.vhd
Normal file
@@ -0,0 +1,114 @@
|
||||
-- #############################################################################
|
||||
-- DE0_Nano_Soc_7_segment_extension_board.vhd
|
||||
--
|
||||
-- BOARD : DE0-Nano-SoC from Terasic
|
||||
-- Author : Florian Depraz
|
||||
-- : Sahand Kashani-Akhavan from Terasic documentation
|
||||
-- Revision : 1.0
|
||||
-- Creation date : 27/10/2016
|
||||
--
|
||||
-- Syntax Rule : GROUP_NAME_N[bit]
|
||||
--
|
||||
-- GROUP : specify a particular interface (ex: SDR_)
|
||||
-- NAME : signal name (ex: CONFIG, D, ...)
|
||||
-- bit : signal index
|
||||
-- _N : to specify an active-low signal
|
||||
-- #############################################################################
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
|
||||
entity DE0_Nano_Soc_7_segment_extension is
|
||||
port(
|
||||
-- ADC
|
||||
ADC_CONVST : out std_logic;
|
||||
ADC_SCK : out std_logic;
|
||||
ADC_SDI : out std_logic;
|
||||
ADC_SDO : in std_logic;
|
||||
|
||||
-- ARDUINO
|
||||
ARDUINO_IO : inout std_logic_vector(15 downto 0);
|
||||
ARDUINO_RESET_N : inout std_logic;
|
||||
|
||||
-- CLOCK
|
||||
FPGA_CLK1_50 : in std_logic;
|
||||
FPGA_CLK2_50 : in std_logic;
|
||||
FPGA_CLK3_50 : in std_logic;
|
||||
|
||||
-- KEY
|
||||
KEY_N : in std_logic_vector(1 downto 0);
|
||||
|
||||
-- LED
|
||||
LED : out std_logic_vector(7 downto 0);
|
||||
|
||||
-- SW
|
||||
SW : in std_logic_vector(3 downto 0);
|
||||
|
||||
-- GPIO_0
|
||||
GPIO_0 : inout std_logic_vector(35 downto 0);
|
||||
|
||||
-- Extension board 7 segments
|
||||
SelSeg : out std_logic_vector(7 downto 0);
|
||||
Reset_Led : out std_logic;
|
||||
nSelDig : out std_logic_vector(5 downto 0);
|
||||
SwLed : in std_logic_vector(7 downto 0);
|
||||
nButton : in std_logic_vector(3 downto 0)
|
||||
LedButton : out std_logic_vector(3 downto 0);
|
||||
|
||||
-- HPS
|
||||
HPS_CONV_USB_N : inout std_logic;
|
||||
HPS_DDR3_ADDR : out std_logic_vector(14 downto 0);
|
||||
HPS_DDR3_BA : out std_logic_vector(2 downto 0);
|
||||
HPS_DDR3_CAS_N : out std_logic;
|
||||
HPS_DDR3_CK_N : out std_logic;
|
||||
HPS_DDR3_CK_P : out std_logic;
|
||||
HPS_DDR3_CKE : out std_logic;
|
||||
HPS_DDR3_CS_N : out std_logic;
|
||||
HPS_DDR3_DM : out std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQ : inout std_logic_vector(31 downto 0);
|
||||
HPS_DDR3_DQS_N : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQS_P : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_ODT : out std_logic;
|
||||
HPS_DDR3_RAS_N : out std_logic;
|
||||
HPS_DDR3_RESET_N : out std_logic;
|
||||
HPS_DDR3_RZQ : in std_logic;
|
||||
HPS_DDR3_WE_N : out std_logic;
|
||||
HPS_ENET_GTX_CLK : out std_logic;
|
||||
HPS_ENET_INT_N : inout std_logic;
|
||||
HPS_ENET_MDC : out std_logic;
|
||||
HPS_ENET_MDIO : inout std_logic;
|
||||
HPS_ENET_RX_CLK : in std_logic;
|
||||
HPS_ENET_RX_DATA : in std_logic_vector(3 downto 0);
|
||||
HPS_ENET_RX_DV : in std_logic;
|
||||
HPS_ENET_TX_DATA : out std_logic_vector(3 downto 0);
|
||||
HPS_ENET_TX_EN : out std_logic;
|
||||
HPS_GSENSOR_INT : inout std_logic;
|
||||
HPS_I2C0_SCLK : inout std_logic;
|
||||
HPS_I2C0_SDAT : inout std_logic;
|
||||
HPS_I2C1_SCLK : inout std_logic;
|
||||
HPS_I2C1_SDAT : inout std_logic;
|
||||
HPS_KEY_N : inout std_logic;
|
||||
HPS_LED : inout std_logic;
|
||||
HPS_LTC_GPIO : inout std_logic;
|
||||
HPS_SD_CLK : out std_logic;
|
||||
HPS_SD_CMD : inout std_logic;
|
||||
HPS_SD_DATA : inout std_logic_vector(3 downto 0);
|
||||
HPS_SPIM_CLK : out std_logic;
|
||||
HPS_SPIM_MISO : in std_logic;
|
||||
HPS_SPIM_MOSI : out std_logic;
|
||||
HPS_SPIM_SS : inout std_logic;
|
||||
HPS_UART_RX : in std_logic;
|
||||
HPS_UART_TX : out std_logic;
|
||||
HPS_USB_CLKOUT : in std_logic;
|
||||
HPS_USB_DATA : inout std_logic_vector(7 downto 0);
|
||||
HPS_USB_DIR : in std_logic;
|
||||
HPS_USB_NXT : in std_logic;
|
||||
HPS_USB_STP : out std_logic
|
||||
);
|
||||
end entity DE0_Nano_Soc_7_segment_extension;
|
||||
|
||||
architecture rtl of DE0_Nano_Soc_7_segment_extension is
|
||||
begin
|
||||
|
||||
|
||||
end;
|
36
cs473-es/lab2/ch/hw/hdl/WS28XX/ClkGen.vhd
Normal file
36
cs473-es/lab2/ch/hw/hdl/WS28XX/ClkGen.vhd
Normal file
@@ -0,0 +1,36 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
entity ClkGen is
|
||||
generic (
|
||||
F_OUT : natural; -- Hz
|
||||
F_CLK : natural -- Hz
|
||||
);
|
||||
port (
|
||||
clk : in std_logic;
|
||||
rst_n : in std_logic;
|
||||
clk_o : out std_logic;
|
||||
en : in std_logic
|
||||
);
|
||||
end ClkGen;
|
||||
|
||||
architecture Behavioral of ClkGen is
|
||||
constant CNT_MAX : integer := integer(floor(real(F_CLK) / real(F_OUT))) - 1;
|
||||
signal counter_reg, counter_next: integer range CNT_MAX downto 0;
|
||||
begin
|
||||
counter_next <= CNT_MAX when counter_reg = 0 else counter_reg - 1;
|
||||
process(clk, rst_n) begin
|
||||
if rising_edge(clk) then
|
||||
if rst_n = '0' then
|
||||
counter_reg <= CNT_MAX;
|
||||
else
|
||||
if en = '1' then
|
||||
counter_reg <= counter_next;
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
end process;
|
||||
clk_o <= '1' when counter_reg = 0 and en = '1' else '0';
|
||||
end Behavioral; -- Behavioral
|
89
cs473-es/lab2/ch/hw/hdl/WS28XX/WS28XX.vhd
Normal file
89
cs473-es/lab2/ch/hw/hdl/WS28XX/WS28XX.vhd
Normal file
@@ -0,0 +1,89 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
|
||||
entity WS28XX is
|
||||
port(
|
||||
clk:in std_logic;
|
||||
nReset:in std_logic;
|
||||
|
||||
--Internalinterface(i.e.Avalonslave).
|
||||
address:in std_logic;
|
||||
write:in std_logic;
|
||||
writedata:in std_logic_vector(31 downto 0);
|
||||
|
||||
--Externalinterface(i.e.conduit).
|
||||
lout:out std_logic
|
||||
);
|
||||
|
||||
end WS28XX;
|
||||
|
||||
|
||||
architecture comp of WS28XX is
|
||||
|
||||
signal led_i : std_logic_vector(7 downto 0);
|
||||
signal led_v : std_logic_vector(23 downto 0);
|
||||
signal led_wr : std_logic;
|
||||
|
||||
signal led_n : std_logic_vector(7 downto 0);
|
||||
signal led_n_wr : std_logic;
|
||||
|
||||
signal ready : std_logic;
|
||||
begin
|
||||
|
||||
--WSDriver.
|
||||
l0 : entity work.WSDriver
|
||||
generic map (
|
||||
F_CLK => 50000000,
|
||||
N_LED_MAX => 255
|
||||
)
|
||||
port map (
|
||||
clk => clk,
|
||||
rst_n => nReset,
|
||||
|
||||
-- LED address and LED value
|
||||
led_wr_in => led_wr,
|
||||
led_in => led_v,
|
||||
addr_in => led_i,
|
||||
|
||||
-- Write-enable & value of N bits to keep active
|
||||
n_wr_in => led_n_wr,
|
||||
n_in => led_n,
|
||||
|
||||
-- Output 1-bit line for WS2812 strip
|
||||
ws_out => lout,
|
||||
|
||||
-- Low while shifting LED values
|
||||
ready_out => ready
|
||||
);
|
||||
|
||||
|
||||
led_i <= writedata(31 downto 24);
|
||||
led_v <= writedata(23 downto 0);
|
||||
led_n <= writedata(7 downto 0);
|
||||
|
||||
--Avalon slave - write to registers.
|
||||
process(write,address,nReset)
|
||||
begin
|
||||
if nReset = '0' then
|
||||
led_wr <= '0';
|
||||
led_n_wr <= '0';
|
||||
else
|
||||
led_wr <= '0';
|
||||
led_n_wr <= '0';
|
||||
|
||||
if write = '1' then
|
||||
case address is
|
||||
when '0' =>
|
||||
led_wr <= '1';
|
||||
when '1' =>
|
||||
led_n_wr <= '1';
|
||||
when others =>
|
||||
null;
|
||||
end case;
|
||||
end if;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
|
||||
end comp;
|
134
cs473-es/lab2/ch/hw/hdl/WS28XX/WS28XX_hw.tcl
Normal file
134
cs473-es/lab2/ch/hw/hdl/WS28XX/WS28XX_hw.tcl
Normal file
@@ -0,0 +1,134 @@
|
||||
# TCL File Generated by Component Editor 18.1
|
||||
# Fri Oct 30 13:47:37 CET 2020
|
||||
# DO NOT MODIFY
|
||||
|
||||
|
||||
#
|
||||
# WS28XX "WS28XX" v1.0
|
||||
# 2020.10.30.13:47:37
|
||||
#
|
||||
#
|
||||
|
||||
#
|
||||
# request TCL package from ACDS 16.1
|
||||
#
|
||||
package require -exact qsys 16.1
|
||||
|
||||
|
||||
#
|
||||
# module WS28XX
|
||||
#
|
||||
set_module_property DESCRIPTION ""
|
||||
set_module_property NAME WS28XX
|
||||
set_module_property VERSION 1.0
|
||||
set_module_property INTERNAL false
|
||||
set_module_property OPAQUE_ADDRESS_MAP true
|
||||
set_module_property AUTHOR ""
|
||||
set_module_property DISPLAY_NAME WS28XX
|
||||
set_module_property INSTANTIATE_IN_SYSTEM_MODULE true
|
||||
set_module_property EDITABLE true
|
||||
set_module_property REPORT_TO_TALKBACK false
|
||||
set_module_property ALLOW_GREYBOX_GENERATION false
|
||||
set_module_property REPORT_HIERARCHY false
|
||||
|
||||
|
||||
#
|
||||
# file sets
|
||||
#
|
||||
add_fileset QUARTUS_SYNTH QUARTUS_SYNTH "" ""
|
||||
set_fileset_property QUARTUS_SYNTH TOP_LEVEL WS28XX
|
||||
set_fileset_property QUARTUS_SYNTH ENABLE_RELATIVE_INCLUDE_PATHS false
|
||||
set_fileset_property QUARTUS_SYNTH ENABLE_FILE_OVERWRITE_MODE false
|
||||
add_fileset_file WS28XX.vhd VHDL PATH WS28XX.vhd TOP_LEVEL_FILE
|
||||
|
||||
|
||||
#
|
||||
# parameters
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# display items
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# connection point avalon_slave
|
||||
#
|
||||
add_interface avalon_slave avalon end
|
||||
set_interface_property avalon_slave addressUnits WORDS
|
||||
set_interface_property avalon_slave associatedClock clock_sink
|
||||
set_interface_property avalon_slave associatedReset reset_sink
|
||||
set_interface_property avalon_slave bitsPerSymbol 8
|
||||
set_interface_property avalon_slave burstOnBurstBoundariesOnly false
|
||||
set_interface_property avalon_slave burstcountUnits WORDS
|
||||
set_interface_property avalon_slave explicitAddressSpan 0
|
||||
set_interface_property avalon_slave holdTime 0
|
||||
set_interface_property avalon_slave linewrapBursts false
|
||||
set_interface_property avalon_slave maximumPendingReadTransactions 0
|
||||
set_interface_property avalon_slave maximumPendingWriteTransactions 0
|
||||
set_interface_property avalon_slave readLatency 0
|
||||
set_interface_property avalon_slave readWaitTime 1
|
||||
set_interface_property avalon_slave setupTime 0
|
||||
set_interface_property avalon_slave timingUnits Cycles
|
||||
set_interface_property avalon_slave writeWaitTime 0
|
||||
set_interface_property avalon_slave ENABLED true
|
||||
set_interface_property avalon_slave EXPORT_OF ""
|
||||
set_interface_property avalon_slave PORT_NAME_MAP ""
|
||||
set_interface_property avalon_slave CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property avalon_slave SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port avalon_slave address address Input 2
|
||||
add_interface_port avalon_slave write write Input 1
|
||||
add_interface_port avalon_slave writedata writedata Input 32
|
||||
add_interface_port avalon_slave read read Input 1
|
||||
add_interface_port avalon_slave readdata readdata Output 32
|
||||
set_interface_assignment avalon_slave embeddedsw.configuration.isFlash 0
|
||||
set_interface_assignment avalon_slave embeddedsw.configuration.isMemoryDevice 0
|
||||
set_interface_assignment avalon_slave embeddedsw.configuration.isNonVolatileStorage 0
|
||||
set_interface_assignment avalon_slave embeddedsw.configuration.isPrintableDevice 0
|
||||
|
||||
|
||||
#
|
||||
# connection point clock_sink
|
||||
#
|
||||
add_interface clock_sink clock end
|
||||
set_interface_property clock_sink clockRate 0
|
||||
set_interface_property clock_sink ENABLED true
|
||||
set_interface_property clock_sink EXPORT_OF ""
|
||||
set_interface_property clock_sink PORT_NAME_MAP ""
|
||||
set_interface_property clock_sink CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property clock_sink SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port clock_sink clk clk Input 1
|
||||
|
||||
|
||||
#
|
||||
# connection point reset_sink
|
||||
#
|
||||
add_interface reset_sink reset end
|
||||
set_interface_property reset_sink associatedClock clock_sink
|
||||
set_interface_property reset_sink synchronousEdges DEASSERT
|
||||
set_interface_property reset_sink ENABLED true
|
||||
set_interface_property reset_sink EXPORT_OF ""
|
||||
set_interface_property reset_sink PORT_NAME_MAP ""
|
||||
set_interface_property reset_sink CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property reset_sink SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port reset_sink nReset reset_n Input 1
|
||||
|
||||
|
||||
#
|
||||
# connection point ws_out_source
|
||||
#
|
||||
add_interface ws_out_source conduit end
|
||||
set_interface_property ws_out_source associatedClock clock_sink
|
||||
set_interface_property ws_out_source associatedReset ""
|
||||
set_interface_property ws_out_source ENABLED true
|
||||
set_interface_property ws_out_source EXPORT_OF ""
|
||||
set_interface_property ws_out_source PORT_NAME_MAP ""
|
||||
set_interface_property ws_out_source CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property ws_out_source SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port ws_out_source lout new_signal Output 1
|
||||
|
213
cs473-es/lab2/ch/hw/hdl/WS28XX/WSDriver.vhd
Normal file
213
cs473-es/lab2/ch/hw/hdl/WS28XX/WSDriver.vhd
Normal file
@@ -0,0 +1,213 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
entity WSDriver is
|
||||
generic (
|
||||
F_CLK : natural; -- Board frequency in Hz
|
||||
N_LED_MAX : natural -- Maximum number of LEDs to instantiate
|
||||
);
|
||||
port (
|
||||
clk : in std_logic;
|
||||
rst_n : in std_logic;
|
||||
|
||||
-- LED address and LED value
|
||||
led_wr_in : in std_logic;
|
||||
led_in : in std_logic_vector(23 downto 0);
|
||||
addr_in : in std_logic_vector(integer(ceil(log2(real(N_LED_MAX)))) - 1 downto 0);
|
||||
|
||||
-- Write-enable and value of N LEDs to keep active/addressable
|
||||
n_wr_in : in std_logic;
|
||||
n_in : in std_logic_vector(integer(ceil(log2(real(N_LED_MAX)))) - 1 downto 0);
|
||||
|
||||
-- Output 1-bit line for WS2812 strip
|
||||
ws_out : out std_logic;
|
||||
|
||||
-- Output Ready
|
||||
ready_out : out std_logic
|
||||
);
|
||||
end WSDriver;
|
||||
|
||||
architecture Behavioral of WSDriver is
|
||||
constant F_WS : real := 1.0/((0.3)*10**(-6.0));
|
||||
constant T_RES_US : real := 50.0*10**(-6.0);
|
||||
constant RES_TICKS : integer := integer(ceil(T_RES_US*F_WS));
|
||||
|
||||
constant BITS_PER_LED : integer := 24;
|
||||
|
||||
subtype LED is std_logic_vector(BITS_PER_LED - 1 downto 0);
|
||||
type LED_array is array (natural range 0 to N_LED_MAX - 1) of LED;
|
||||
|
||||
type State is (ready, tx, reset);
|
||||
|
||||
signal ws_clk : std_logic;
|
||||
signal led_idx_reg, led_idx_next : natural range 0 to N_LED_MAX - 1;
|
||||
signal bit_idx_reg, bit_idx_next : natural range 0 to N_LED_MAX - 1;
|
||||
signal state_reg, state_next : State;
|
||||
|
||||
constant WS_CLKS_PER_BIT : integer := 4;
|
||||
signal ws_cntr_reg, ws_cntr_next : integer range WS_CLKS_PER_BIT - 1 downto 0;
|
||||
signal ws_en : std_logic;
|
||||
|
||||
signal leds_reg, leds_next : LED_array;
|
||||
|
||||
-- Register for maintaining the set of driven LEDs
|
||||
signal n_leds_reg, n_leds_next : unsigned(integer(ceil(log2(real(N_LED_MAX)))) - 1 downto 0) := (others => '0');
|
||||
|
||||
-- Currently accessed LED
|
||||
signal current_led : LED;
|
||||
|
||||
-- Trailing reset counter
|
||||
signal reset_cntr_reg, reset_cntr_next : integer range RES_TICKS - 1 downto 0;
|
||||
|
||||
-- Detecting wr_in assertions
|
||||
signal wr_in_detec_reg, wr_in_detec_next : std_logic := '0';
|
||||
|
||||
|
||||
begin
|
||||
|
||||
-- Next-state LED and Bit index process
|
||||
process (all) begin
|
||||
bit_idx_next <= bit_idx_reg;
|
||||
led_idx_next <= led_idx_reg;
|
||||
reset_cntr_next <= reset_cntr_reg;
|
||||
state_next <= state_reg;
|
||||
wr_in_detec_next <= wr_in_detec_reg;
|
||||
|
||||
-- Latch wr_in value, to ensure re-transition to tx state if wr_in occured
|
||||
-- during a non-ready state.
|
||||
if led_wr_in = '1' then
|
||||
wr_in_detec_next <= '1';
|
||||
end if;
|
||||
|
||||
case state_reg is
|
||||
-- STATE READY
|
||||
when ready =>
|
||||
bit_idx_next <= BITS_PER_LED - 1;
|
||||
led_idx_next <= 0;
|
||||
|
||||
if n_leds_reg /= 0 and wr_in_detec_reg = '1' then
|
||||
wr_in_detec_next <= '0';
|
||||
state_next <= tx;
|
||||
end if;
|
||||
|
||||
-- STATE TX
|
||||
when tx =>
|
||||
if ws_cntr_reg = (WS_CLKS_PER_BIT - 1) and ws_clk ='1' then
|
||||
if bit_idx_reg = 0 then
|
||||
-- Transition to next LED
|
||||
bit_idx_next <= BITS_PER_LED - 1;
|
||||
led_idx_next <= led_idx_reg + 1;
|
||||
else
|
||||
-- Bit was fully shifted, transition to next bit
|
||||
bit_idx_next <= bit_idx_reg - 1;
|
||||
end if;
|
||||
|
||||
-- All LEDs fully shifted out (+last bit of last led)? transition to ready
|
||||
if bit_idx_reg = 0 and led_idx_reg + 1 = n_leds_reg then
|
||||
state_next <= reset;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
-- STATE TRAILING RESET
|
||||
when reset =>
|
||||
if ws_clk ='1' then
|
||||
if reset_cntr_reg = RES_TICKS - 1 then
|
||||
reset_cntr_next <= 0;
|
||||
state_next <= ready;
|
||||
else
|
||||
reset_cntr_next <= reset_cntr_reg + 1;
|
||||
end if;
|
||||
end if;
|
||||
end case;
|
||||
end process;
|
||||
|
||||
-- Currently accessed LED multiplexer
|
||||
current_led <= leds_reg(led_idx_reg) when state_reg = tx else (others => '0');
|
||||
|
||||
-- Next state WS counter
|
||||
process (state_reg, ws_cntr_reg, ws_clk) begin
|
||||
ws_cntr_next <= ws_cntr_reg;
|
||||
if state_reg = ready or state_reg = reset then
|
||||
ws_cntr_next <= 0;
|
||||
elsif ws_clk = '1' then
|
||||
if ws_cntr_reg /= (WS_CLKS_PER_BIT - 1) then
|
||||
ws_cntr_next <= ws_cntr_reg + 1;
|
||||
else
|
||||
ws_cntr_next <= 0;
|
||||
end if;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
-- Next-state LED values
|
||||
process(led_wr_in, led_in, leds_reg, addr_in, n_wr_in, n_in) begin
|
||||
leds_next <= leds_reg;
|
||||
n_leds_next <= n_leds_reg;
|
||||
|
||||
if led_wr_in = '1' then
|
||||
leds_next(to_integer(unsigned(addr_in))) <= led_in;
|
||||
end if;
|
||||
-- Set N LEDs precedes LED write operation
|
||||
if n_wr_in = '1' then
|
||||
n_leds_next <= unsigned(n_in);
|
||||
end if;
|
||||
end process;
|
||||
|
||||
-- WS output clock
|
||||
clkgen_ent : entity work.ClkGen
|
||||
generic map (
|
||||
F_CLK => F_CLK,
|
||||
F_OUT => integer(F_WS)
|
||||
)
|
||||
port map (
|
||||
clk => clk,
|
||||
rst_n => rst_n,
|
||||
clk_o => ws_clk,
|
||||
en => ws_en
|
||||
);
|
||||
|
||||
-- Only enable ws clock gen when required
|
||||
ws_en <= '1' when state_reg /= ready else '0';
|
||||
|
||||
-- Clocking logic
|
||||
process(clk) begin
|
||||
if rising_edge(clk) then
|
||||
if rst_n = '0' then
|
||||
ws_cntr_reg <= 0;
|
||||
leds_reg <= (others => (others => '0'));
|
||||
n_leds_reg <= (others => '0');
|
||||
wr_in_detec_reg <= '0';
|
||||
bit_idx_reg <= BITS_PER_LED - 1;
|
||||
state_reg <= ready;
|
||||
led_idx_reg <= 0;
|
||||
reset_cntr_reg <= 0;
|
||||
else
|
||||
ws_cntr_reg <= ws_cntr_next;
|
||||
leds_reg <= leds_next;
|
||||
n_leds_reg <= n_leds_next;
|
||||
wr_in_detec_reg <= wr_in_detec_next;
|
||||
bit_idx_reg <= bit_idx_next;
|
||||
state_reg <= state_next;
|
||||
led_idx_reg <= led_idx_next;
|
||||
reset_cntr_reg <= reset_cntr_next;
|
||||
end if;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
-- WS2811 output bit sequence
|
||||
process(state_reg, ws_cntr_reg) begin
|
||||
ws_out <= '0';
|
||||
if state_reg = tx then
|
||||
case ws_cntr_reg is
|
||||
when 0 => ws_out <= '1';
|
||||
when 1 => ws_out <= current_led(bit_idx_reg);
|
||||
when 2 => ws_out <= '0';
|
||||
when 3 => ws_out <= '0';
|
||||
end case;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
ready_out <= '1' when state_reg = ready else '0';
|
||||
|
||||
end Behavioral;
|
96
cs473-es/lab2/ch/hw/hdl/WS28XX/WSDriver_tb.vhd
Normal file
96
cs473-es/lab2/ch/hw/hdl/WS28XX/WSDriver_tb.vhd
Normal file
@@ -0,0 +1,96 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
|
||||
entity WSDriver_tb is
|
||||
end WSDriver_tb;
|
||||
|
||||
architecture test of WSDriver_tb is
|
||||
constant CLK_PERIOD : time := 20 ns;
|
||||
constant N_LED_MAX : integer := 255;
|
||||
|
||||
signal clk : std_logic := '0';
|
||||
signal rst_n : std_logic;
|
||||
|
||||
signal led_wr_in : std_logic := '0';
|
||||
signal addr_in : std_logic_vector(integer(ceil(log2(real(N_LED_MAX)))) - 1 downto 0) := (others => '0');
|
||||
signal led_in : std_logic_vector(23 downto 0) := (others => '0');
|
||||
|
||||
signal n_wr_in : std_logic := '0';
|
||||
signal n_in : std_logic_vector(integer(ceil(log2(real(N_LED_MAX)))) - 1 downto 0) := (others => '0');
|
||||
|
||||
signal ws_out : std_logic;
|
||||
signal ready_out : std_logic;
|
||||
|
||||
begin
|
||||
-- Instantiate DUT
|
||||
dut : entity work.WSDriver
|
||||
generic map (
|
||||
F_CLK => 50000000,
|
||||
N_LED_MAX => 255
|
||||
)
|
||||
port map(
|
||||
clk => clk,
|
||||
rst_n => rst_n,
|
||||
led_wr_in => led_wr_in,
|
||||
addr_in => addr_in,
|
||||
led_in => led_in,
|
||||
n_wr_in => n_wr_in,
|
||||
n_in => n_in,
|
||||
ws_out => ws_out,
|
||||
ready_out => ready_out
|
||||
);
|
||||
|
||||
-- Clocking process
|
||||
clk_generation : process
|
||||
begin
|
||||
clk <= not clk;
|
||||
wait for CLK_PERIOD / 2;
|
||||
end process;
|
||||
|
||||
tb : process
|
||||
procedure wait_ready is
|
||||
begin
|
||||
if ready_out /= '1' then
|
||||
wait until ready_out = '1';
|
||||
end if;
|
||||
end procedure wait_ready;
|
||||
|
||||
procedure finish is
|
||||
begin
|
||||
wait until falling_edge(clk);
|
||||
wait_ready;
|
||||
wait;
|
||||
end procedure finish ;
|
||||
|
||||
begin
|
||||
-- Reset
|
||||
rst_n <= '0';
|
||||
wait for CLK_PERIOD * 2.5;
|
||||
rst_n <= '1';
|
||||
wait for CLK_PERIOD * 2;
|
||||
|
||||
-- Test set N
|
||||
n_in <= std_logic_vector(to_unsigned(3, n_in'length));
|
||||
n_wr_in <= '1';
|
||||
wait for CLK_PERIOD;
|
||||
n_wr_in <= '0';
|
||||
wait_ready;
|
||||
|
||||
|
||||
-- Test write LED value
|
||||
addr_in <= std_logic_vector(to_unsigned(0, n_in'length));
|
||||
led_in <= "110011001100110011001100";
|
||||
led_wr_in <= '1';
|
||||
wait for CLK_PERIOD;
|
||||
led_wr_in <= '0';
|
||||
|
||||
-- Test finished
|
||||
wait_ready;
|
||||
finish;
|
||||
|
||||
end process;
|
||||
|
||||
end;
|
2094
cs473-es/lab2/ch/hw/modelsim/lab2.mpf
Normal file
2094
cs473-es/lab2/ch/hw/modelsim/lab2.mpf
Normal file
File diff suppressed because it is too large
Load Diff
52
cs473-es/lab2/ch/hw/quartus/.gitignore
vendored
Normal file
52
cs473-es/lab2/ch/hw/quartus/.gitignore
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
# A gitignore for Altera Quartus II that tries to ignore almost all of the
|
||||
# automatically Quartus-generated files. This primarily leaves the project,
|
||||
# settings, source, and constraint files to be added. The files ignored do not
|
||||
# include the bulk of the MegaFunction Wizard generated files which enables
|
||||
# a cloned repository to be used (usually) immediately without regenerating
|
||||
# Altera IP blocks.
|
||||
|
||||
# Need to keep all HDL files and timing constraint files
|
||||
# *.vhd
|
||||
# *.v
|
||||
# *.sdc
|
||||
|
||||
# ignore Quartus II generated folders
|
||||
*_sim
|
||||
db
|
||||
greybox_tmp
|
||||
incremental_db
|
||||
simulation
|
||||
testbench
|
||||
timing
|
||||
synthesis
|
||||
.qsys_edit
|
||||
|
||||
# ignore Quartus II generated files
|
||||
*_generation_script*
|
||||
*_inst.vhd
|
||||
*.bak
|
||||
*.cmp
|
||||
*.done
|
||||
*.eqn
|
||||
*.hex
|
||||
*.html
|
||||
*.jdi
|
||||
*.jpg
|
||||
*.mif
|
||||
*.pin
|
||||
*.pof
|
||||
*.ptf.*
|
||||
*.qar
|
||||
*.qarlog
|
||||
*.qws
|
||||
*.rpt
|
||||
*.smsg
|
||||
*.sof
|
||||
*.sopc_builder
|
||||
*.summary
|
||||
*.tcl
|
||||
*.txt # Explicitly add any text files used
|
||||
*~
|
||||
*example*
|
||||
*sopc_*
|
||||
PLLJ_PLLSPE_INFO.txt # The generated PLL specification file
|
94
cs473-es/lab2/ch/hw/quartus/c5_pin_model_dump.txt
Normal file
94
cs473-es/lab2/ch/hw/quartus/c5_pin_model_dump.txt
Normal file
@@ -0,0 +1,94 @@
|
||||
io_4iomodule_c5_index: 42gpio_index: 2
|
||||
io_4iomodule_c5_index: 41gpio_index: 369
|
||||
io_4iomodule_c5_index: 27gpio_index: 6
|
||||
io_4iomodule_c5_index: 1gpio_index: 365
|
||||
io_4iomodule_c5_index: 22gpio_index: 10
|
||||
io_4iomodule_c5_index: 6gpio_index: 361
|
||||
io_4iomodule_c5_index: 28gpio_index: 14
|
||||
io_4iomodule_c5_index: 24gpio_index: 357
|
||||
io_4iomodule_c5_index: 21gpio_index: 19
|
||||
io_4iomodule_c5_index: 25gpio_index: 353
|
||||
io_4iomodule_c5_index: 23gpio_index: 22
|
||||
io_4iomodule_c5_index: 15gpio_index: 349
|
||||
io_4iomodule_c5_index: 13gpio_index: 27
|
||||
io_4iomodule_c5_index: 34gpio_index: 345
|
||||
io_4iomodule_c5_index: 39gpio_index: 30
|
||||
io_4iomodule_c5_index: 19gpio_index: 341
|
||||
io_4iomodule_c5_index: 5gpio_index: 35
|
||||
io_4iomodule_c5_index: 10gpio_index: 337
|
||||
io_4iomodule_c5_index: 9gpio_index: 38
|
||||
io_4iomodule_c5_index: 36gpio_index: 333
|
||||
io_4iomodule_c5_index: 17gpio_index: 43
|
||||
io_4iomodule_c5_index: 40gpio_index: 329
|
||||
io_4iomodule_c5_index: 16gpio_index: 46
|
||||
io_4iomodule_c5_index: 43gpio_index: 325
|
||||
io_4iomodule_a_index: 13gpio_index: 321
|
||||
io_4iomodule_c5_index: 2gpio_index: 51
|
||||
io_4iomodule_a_index: 15gpio_index: 317
|
||||
io_4iomodule_a_index: 8gpio_index: 313
|
||||
io_4iomodule_c5_index: 32gpio_index: 54
|
||||
io_4iomodule_a_index: 5gpio_index: 309
|
||||
io_4iomodule_c5_index: 8gpio_index: 59
|
||||
io_4iomodule_a_index: 11gpio_index: 305
|
||||
io_4iomodule_c5_index: 4gpio_index: 62
|
||||
io_4iomodule_a_index: 3gpio_index: 301
|
||||
io_4iomodule_c5_index: 30gpio_index: 67
|
||||
io_4iomodule_a_index: 7gpio_index: 297
|
||||
io_4iomodule_c5_index: 0gpio_index: 70
|
||||
io_4iomodule_a_index: 0gpio_index: 293
|
||||
io_4iomodule_c5_index: 31gpio_index: 75
|
||||
io_4iomodule_a_index: 12gpio_index: 289
|
||||
io_4iomodule_c5_index: 26gpio_index: 78
|
||||
io_4iomodule_a_index: 4gpio_index: 285
|
||||
io_4iomodule_a_index: 10gpio_index: 281
|
||||
io_4iomodule_c5_index: 3gpio_index: 83
|
||||
io_4iomodule_a_index: 16gpio_index: 277
|
||||
io_4iomodule_c5_index: 18gpio_index: 86
|
||||
io_4iomodule_c5_index: 37gpio_index: 91
|
||||
io_4iomodule_a_index: 14gpio_index: 273
|
||||
io_4iomodule_a_index: 1gpio_index: 269
|
||||
io_4iomodule_c5_index: 33gpio_index: 94
|
||||
io_4iomodule_c5_index: 20gpio_index: 99
|
||||
io_4iomodule_a_index: 2gpio_index: 265
|
||||
io_4iomodule_c5_index: 7gpio_index: 102
|
||||
io_4iomodule_a_index: 9gpio_index: 261
|
||||
io_4iomodule_a_index: 6gpio_index: 257
|
||||
io_4iomodule_c5_index: 11gpio_index: 107
|
||||
io_4iomodule_a_index: 17gpio_index: 253
|
||||
io_4iomodule_c5_index: 38gpio_index: 110
|
||||
io_4iomodule_c5_index: 14gpio_index: 115
|
||||
io_4iomodule_c5_index: 29gpio_index: 118
|
||||
io_4iomodule_c5_index: 12gpio_index: 123
|
||||
io_4iomodule_c5_index: 35gpio_index: 126
|
||||
io_4iomodule_h_c5_index: 0gpio_index: 129
|
||||
io_4iomodule_h_c5_index: 1gpio_index: 133
|
||||
io_4iomodule_h_c5_index: 3gpio_index: 137
|
||||
io_4iomodule_h_c5_index: 2gpio_index: 141
|
||||
io_4iomodule_h_index: 20gpio_index: 144
|
||||
io_4iomodule_h_index: 24gpio_index: 148
|
||||
io_4iomodule_h_index: 12gpio_index: 152
|
||||
io_4iomodule_h_index: 10gpio_index: 156
|
||||
io_4iomodule_h_index: 0gpio_index: 160
|
||||
io_4iomodule_vref_h_index: 0gpio_index: 164
|
||||
io_4iomodule_h_index: 22gpio_index: 167
|
||||
io_4iomodule_h_index: 6gpio_index: 171
|
||||
io_4iomodule_h_index: 16gpio_index: 175
|
||||
io_4iomodule_h_index: 2gpio_index: 179
|
||||
io_4iomodule_h_index: 5gpio_index: 183
|
||||
io_4iomodule_h_index: 3gpio_index: 187
|
||||
io_4iomodule_h_index: 14gpio_index: 191
|
||||
io_4iomodule_h_index: 7gpio_index: 195
|
||||
io_4iomodule_h_index: 18gpio_index: 199
|
||||
io_4iomodule_h_index: 11gpio_index: 203
|
||||
io_4iomodule_h_index: 9gpio_index: 207
|
||||
io_4iomodule_h_index: 13gpio_index: 211
|
||||
io_4iomodule_h_index: 23gpio_index: 215
|
||||
io_4iomodule_vref_h_index: 1gpio_index: 219
|
||||
io_4iomodule_h_index: 21gpio_index: 222
|
||||
io_4iomodule_h_index: 8gpio_index: 226
|
||||
io_4iomodule_h_index: 25gpio_index: 230
|
||||
io_4iomodule_h_index: 1gpio_index: 234
|
||||
io_4iomodule_h_index: 15gpio_index: 238
|
||||
io_4iomodule_h_index: 19gpio_index: 242
|
||||
io_4iomodule_h_index: 17gpio_index: 246
|
||||
io_4iomodule_h_index: 4gpio_index: 250
|
30
cs473-es/lab2/ch/hw/quartus/lab2.qpf
Normal file
30
cs473-es/lab2/ch/hw/quartus/lab2.qpf
Normal file
@@ -0,0 +1,30 @@
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Copyright (C) 2018 Intel Corporation. All rights reserved.
|
||||
# Your use of Intel Corporation's design tools, logic functions
|
||||
# and other software and tools, and its AMPP partner logic
|
||||
# functions, and any output files from any of the foregoing
|
||||
# (including device programming or simulation files), and any
|
||||
# associated documentation or information are expressly subject
|
||||
# to the terms and conditions of the Intel Program License
|
||||
# Subscription Agreement, the Intel Quartus Prime License Agreement,
|
||||
# the Intel FPGA IP License Agreement, or other applicable license
|
||||
# agreement, including, without limitation, that your use is for
|
||||
# the sole purpose of programming logic devices manufactured by
|
||||
# Intel and sold by Intel or its authorized distributors. Please
|
||||
# refer to the applicable agreement for further details.
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Quartus Prime
|
||||
# Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition
|
||||
# Date created = 09:04:57 October 23, 2020
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
QUARTUS_VERSION = "18.1"
|
||||
DATE = "09:04:57 October 23, 2020"
|
||||
|
||||
# Revisions
|
||||
|
||||
PROJECT_REVISION = "lab2"
|
897
cs473-es/lab2/ch/hw/quartus/lab2.qsf
Normal file
897
cs473-es/lab2/ch/hw/quartus/lab2.qsf
Normal file
@@ -0,0 +1,897 @@
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Copyright (C) 2018 Intel Corporation. All rights reserved.
|
||||
# Your use of Intel Corporation's design tools, logic functions
|
||||
# and other software and tools, and its AMPP partner logic
|
||||
# functions, and any output files from any of the foregoing
|
||||
# (including device programming or simulation files), and any
|
||||
# associated documentation or information are expressly subject
|
||||
# to the terms and conditions of the Intel Program License
|
||||
# Subscription Agreement, the Intel Quartus Prime License Agreement,
|
||||
# the Intel FPGA IP License Agreement, or other applicable license
|
||||
# agreement, including, without limitation, that your use is for
|
||||
# the sole purpose of programming logic devices manufactured by
|
||||
# Intel and sold by Intel or its authorized distributors. Please
|
||||
# refer to the applicable agreement for further details.
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Quartus Prime
|
||||
# Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition
|
||||
# Date created = 09:04:57 October 23, 2020
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Notes:
|
||||
#
|
||||
# 1) The default values for assignments are stored in the file:
|
||||
# lab2_assignment_defaults.qdf
|
||||
# If this file doesn't exist, see file:
|
||||
# assignment_defaults.qdf
|
||||
#
|
||||
# 2) Altera recommends that you do not modify this file. This
|
||||
# file is updated automatically by the Quartus Prime software
|
||||
# and any changes you make may be lost or overwritten.
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
|
||||
set_global_assignment -name FAMILY "Cyclone V"
|
||||
set_global_assignment -name DEVICE 5CSEMA4U23C6
|
||||
set_global_assignment -name TOP_LEVEL_ENTITY DE0_Nano_SoC_top_level
|
||||
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 18.1.0
|
||||
set_global_assignment -name PROJECT_CREATION_TIME_DATE "09:04:57 OCTOBER 23, 2020"
|
||||
set_global_assignment -name LAST_QUARTUS_VERSION "18.1.0 Lite Edition"
|
||||
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
|
||||
set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 256
|
||||
set_global_assignment -name EDA_SIMULATION_TOOL "<None>"
|
||||
set_global_assignment -name EDA_TIME_SCALE "1 ps" -section_id eda_simulation
|
||||
set_global_assignment -name EDA_OUTPUT_DATA_FORMAT NONE -section_id eda_simulation
|
||||
set_global_assignment -name DEVICE_FILTER_PACKAGE UFBGA
|
||||
set_global_assignment -name DEVICE_FILTER_PIN_COUNT 896
|
||||
set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 6
|
||||
set_location_assignment PIN_U9 -to ADC_CONVST
|
||||
set_location_assignment PIN_V10 -to ADC_SCK
|
||||
set_location_assignment PIN_AC4 -to ADC_SDI
|
||||
set_location_assignment PIN_AD4 -to ADC_SDO
|
||||
set_location_assignment PIN_AG13 -to ARDUINO_IO[0]
|
||||
set_location_assignment PIN_AG13 -to ARDUINO_IO_0
|
||||
set_location_assignment PIN_AF13 -to ARDUINO_IO[1]
|
||||
set_location_assignment PIN_AF13 -to ARDUINO_IO_1
|
||||
set_location_assignment PIN_AG10 -to ARDUINO_IO[2]
|
||||
set_location_assignment PIN_AG10 -to ARDUINO_IO_2
|
||||
set_location_assignment PIN_AG9 -to ARDUINO_IO[3]
|
||||
set_location_assignment PIN_AG9 -to ARDUINO_IO_3
|
||||
set_location_assignment PIN_U14 -to ARDUINO_IO[4]
|
||||
set_location_assignment PIN_U14 -to ARDUINO_IO_4
|
||||
set_location_assignment PIN_U13 -to ARDUINO_IO[5]
|
||||
set_location_assignment PIN_U13 -to ARDUINO_IO_5
|
||||
set_location_assignment PIN_AG8 -to ARDUINO_IO[6]
|
||||
set_location_assignment PIN_AG8 -to ARDUINO_IO_6
|
||||
set_location_assignment PIN_AH8 -to ARDUINO_IO[7]
|
||||
set_location_assignment PIN_AH8 -to ARDUINO_IO_7
|
||||
set_location_assignment PIN_AF17 -to ARDUINO_IO[8]
|
||||
set_location_assignment PIN_AF17 -to ARDUINO_IO_8
|
||||
set_location_assignment PIN_AE15 -to ARDUINO_IO[9]
|
||||
set_location_assignment PIN_AE15 -to ARDUINO_IO_9
|
||||
set_location_assignment PIN_AF15 -to ARDUINO_IO[10]
|
||||
set_location_assignment PIN_AF15 -to ARDUINO_IO_10
|
||||
set_location_assignment PIN_AG16 -to ARDUINO_IO[11]
|
||||
set_location_assignment PIN_AG16 -to ARDUINO_IO_11
|
||||
set_location_assignment PIN_AH11 -to ARDUINO_IO[12]
|
||||
set_location_assignment PIN_AH11 -to ARDUINO_IO_12
|
||||
set_location_assignment PIN_AH12 -to ARDUINO_IO[13]
|
||||
set_location_assignment PIN_AH12 -to ARDUINO_IO_13
|
||||
set_location_assignment PIN_AH9 -to ARDUINO_IO[14]
|
||||
set_location_assignment PIN_AH9 -to ARDUINO_IO_14
|
||||
set_location_assignment PIN_AG11 -to ARDUINO_IO[15]
|
||||
set_location_assignment PIN_AG11 -to ARDUINO_IO_15
|
||||
set_location_assignment PIN_AH7 -to ARDUINO_RESET_N
|
||||
set_location_assignment PIN_V11 -to FPGA_CLK1_50
|
||||
set_location_assignment PIN_Y13 -to FPGA_CLK2_50
|
||||
set_location_assignment PIN_E11 -to FPGA_CLK3_50
|
||||
set_location_assignment PIN_C6 -to HPS_CONV_USB_N
|
||||
set_location_assignment PIN_C28 -to HPS_DDR3_ADDR[0]
|
||||
set_location_assignment PIN_C28 -to HPS_DDR3_ADDR_0
|
||||
set_location_assignment PIN_B28 -to HPS_DDR3_ADDR[1]
|
||||
set_location_assignment PIN_B28 -to HPS_DDR3_ADDR_1
|
||||
set_location_assignment PIN_E26 -to HPS_DDR3_ADDR[2]
|
||||
set_location_assignment PIN_E26 -to HPS_DDR3_ADDR_2
|
||||
set_location_assignment PIN_D26 -to HPS_DDR3_ADDR[3]
|
||||
set_location_assignment PIN_D26 -to HPS_DDR3_ADDR_3
|
||||
set_location_assignment PIN_J21 -to HPS_DDR3_ADDR[4]
|
||||
set_location_assignment PIN_J21 -to HPS_DDR3_ADDR_4
|
||||
set_location_assignment PIN_J20 -to HPS_DDR3_ADDR[5]
|
||||
set_location_assignment PIN_J20 -to HPS_DDR3_ADDR_5
|
||||
set_location_assignment PIN_C26 -to HPS_DDR3_ADDR[6]
|
||||
set_location_assignment PIN_C26 -to HPS_DDR3_ADDR_6
|
||||
set_location_assignment PIN_B26 -to HPS_DDR3_ADDR[7]
|
||||
set_location_assignment PIN_B26 -to HPS_DDR3_ADDR_7
|
||||
set_location_assignment PIN_F26 -to HPS_DDR3_ADDR[8]
|
||||
set_location_assignment PIN_F26 -to HPS_DDR3_ADDR_8
|
||||
set_location_assignment PIN_F25 -to HPS_DDR3_ADDR[9]
|
||||
set_location_assignment PIN_F25 -to HPS_DDR3_ADDR_9
|
||||
set_location_assignment PIN_A24 -to HPS_DDR3_ADDR[10]
|
||||
set_location_assignment PIN_A24 -to HPS_DDR3_ADDR_10
|
||||
set_location_assignment PIN_B24 -to HPS_DDR3_ADDR[11]
|
||||
set_location_assignment PIN_B24 -to HPS_DDR3_ADDR_11
|
||||
set_location_assignment PIN_D24 -to HPS_DDR3_ADDR[12]
|
||||
set_location_assignment PIN_D24 -to HPS_DDR3_ADDR_12
|
||||
set_location_assignment PIN_C24 -to HPS_DDR3_ADDR[13]
|
||||
set_location_assignment PIN_C24 -to HPS_DDR3_ADDR_13
|
||||
set_location_assignment PIN_G23 -to HPS_DDR3_ADDR[14]
|
||||
set_location_assignment PIN_G23 -to HPS_DDR3_ADDR_14
|
||||
set_location_assignment PIN_A27 -to HPS_DDR3_BA[0]
|
||||
set_location_assignment PIN_A27 -to HPS_DDR3_BA_0
|
||||
set_location_assignment PIN_H25 -to HPS_DDR3_BA[1]
|
||||
set_location_assignment PIN_H25 -to HPS_DDR3_BA_1
|
||||
set_location_assignment PIN_G25 -to HPS_DDR3_BA[2]
|
||||
set_location_assignment PIN_G25 -to HPS_DDR3_BA_2
|
||||
set_location_assignment PIN_A26 -to HPS_DDR3_CAS_N
|
||||
set_location_assignment PIN_L28 -to HPS_DDR3_CKE
|
||||
set_location_assignment PIN_N20 -to HPS_DDR3_CK_N
|
||||
set_location_assignment PIN_N21 -to HPS_DDR3_CK_P
|
||||
set_location_assignment PIN_L21 -to HPS_DDR3_CS_N
|
||||
set_location_assignment PIN_G28 -to HPS_DDR3_DM[0]
|
||||
set_location_assignment PIN_G28 -to HPS_DDR3_DM_0
|
||||
set_location_assignment PIN_P28 -to HPS_DDR3_DM[1]
|
||||
set_location_assignment PIN_P28 -to HPS_DDR3_DM_1
|
||||
set_location_assignment PIN_W28 -to HPS_DDR3_DM[2]
|
||||
set_location_assignment PIN_W28 -to HPS_DDR3_DM_2
|
||||
set_location_assignment PIN_AB28 -to HPS_DDR3_DM[3]
|
||||
set_location_assignment PIN_AB28 -to HPS_DDR3_DM_3
|
||||
set_location_assignment PIN_J25 -to HPS_DDR3_DQ[0]
|
||||
set_location_assignment PIN_J25 -to HPS_DDR3_DQ_0
|
||||
set_location_assignment PIN_J24 -to HPS_DDR3_DQ[1]
|
||||
set_location_assignment PIN_J24 -to HPS_DDR3_DQ_1
|
||||
set_location_assignment PIN_E28 -to HPS_DDR3_DQ[2]
|
||||
set_location_assignment PIN_E28 -to HPS_DDR3_DQ_2
|
||||
set_location_assignment PIN_D27 -to HPS_DDR3_DQ[3]
|
||||
set_location_assignment PIN_D27 -to HPS_DDR3_DQ_3
|
||||
set_location_assignment PIN_J26 -to HPS_DDR3_DQ[4]
|
||||
set_location_assignment PIN_J26 -to HPS_DDR3_DQ_4
|
||||
set_location_assignment PIN_K26 -to HPS_DDR3_DQ[5]
|
||||
set_location_assignment PIN_K26 -to HPS_DDR3_DQ_5
|
||||
set_location_assignment PIN_G27 -to HPS_DDR3_DQ[6]
|
||||
set_location_assignment PIN_G27 -to HPS_DDR3_DQ_6
|
||||
set_location_assignment PIN_F28 -to HPS_DDR3_DQ[7]
|
||||
set_location_assignment PIN_F28 -to HPS_DDR3_DQ_7
|
||||
set_location_assignment PIN_K25 -to HPS_DDR3_DQ[8]
|
||||
set_location_assignment PIN_K25 -to HPS_DDR3_DQ_8
|
||||
set_location_assignment PIN_L25 -to HPS_DDR3_DQ[9]
|
||||
set_location_assignment PIN_L25 -to HPS_DDR3_DQ_9
|
||||
set_location_assignment PIN_J27 -to HPS_DDR3_DQ[10]
|
||||
set_location_assignment PIN_J27 -to HPS_DDR3_DQ_10
|
||||
set_location_assignment PIN_J28 -to HPS_DDR3_DQ[11]
|
||||
set_location_assignment PIN_J28 -to HPS_DDR3_DQ_11
|
||||
set_location_assignment PIN_M27 -to HPS_DDR3_DQ[12]
|
||||
set_location_assignment PIN_M27 -to HPS_DDR3_DQ_12
|
||||
set_location_assignment PIN_M26 -to HPS_DDR3_DQ[13]
|
||||
set_location_assignment PIN_M26 -to HPS_DDR3_DQ_13
|
||||
set_location_assignment PIN_M28 -to HPS_DDR3_DQ[14]
|
||||
set_location_assignment PIN_M28 -to HPS_DDR3_DQ_14
|
||||
set_location_assignment PIN_N28 -to HPS_DDR3_DQ[15]
|
||||
set_location_assignment PIN_N28 -to HPS_DDR3_DQ_15
|
||||
set_location_assignment PIN_N24 -to HPS_DDR3_DQ[16]
|
||||
set_location_assignment PIN_N24 -to HPS_DDR3_DQ_16
|
||||
set_location_assignment PIN_N25 -to HPS_DDR3_DQ[17]
|
||||
set_location_assignment PIN_N25 -to HPS_DDR3_DQ_17
|
||||
set_location_assignment PIN_T28 -to HPS_DDR3_DQ[18]
|
||||
set_location_assignment PIN_T28 -to HPS_DDR3_DQ_18
|
||||
set_location_assignment PIN_U28 -to HPS_DDR3_DQ[19]
|
||||
set_location_assignment PIN_U28 -to HPS_DDR3_DQ_19
|
||||
set_location_assignment PIN_N26 -to HPS_DDR3_DQ[20]
|
||||
set_location_assignment PIN_N26 -to HPS_DDR3_DQ_20
|
||||
set_location_assignment PIN_N27 -to HPS_DDR3_DQ[21]
|
||||
set_location_assignment PIN_N27 -to HPS_DDR3_DQ_21
|
||||
set_location_assignment PIN_R27 -to HPS_DDR3_DQ[22]
|
||||
set_location_assignment PIN_R27 -to HPS_DDR3_DQ_22
|
||||
set_location_assignment PIN_V27 -to HPS_DDR3_DQ[23]
|
||||
set_location_assignment PIN_V27 -to HPS_DDR3_DQ_23
|
||||
set_location_assignment PIN_R26 -to HPS_DDR3_DQ[24]
|
||||
set_location_assignment PIN_R26 -to HPS_DDR3_DQ_24
|
||||
set_location_assignment PIN_R25 -to HPS_DDR3_DQ[25]
|
||||
set_location_assignment PIN_R25 -to HPS_DDR3_DQ_25
|
||||
set_location_assignment PIN_AA28 -to HPS_DDR3_DQ[26]
|
||||
set_location_assignment PIN_AA28 -to HPS_DDR3_DQ_26
|
||||
set_location_assignment PIN_W26 -to HPS_DDR3_DQ[27]
|
||||
set_location_assignment PIN_W26 -to HPS_DDR3_DQ_27
|
||||
set_location_assignment PIN_R24 -to HPS_DDR3_DQ[28]
|
||||
set_location_assignment PIN_R24 -to HPS_DDR3_DQ_28
|
||||
set_location_assignment PIN_T24 -to HPS_DDR3_DQ[29]
|
||||
set_location_assignment PIN_T24 -to HPS_DDR3_DQ_29
|
||||
set_location_assignment PIN_Y27 -to HPS_DDR3_DQ[30]
|
||||
set_location_assignment PIN_Y27 -to HPS_DDR3_DQ_30
|
||||
set_location_assignment PIN_AA27 -to HPS_DDR3_DQ[31]
|
||||
set_location_assignment PIN_AA27 -to HPS_DDR3_DQ_31
|
||||
set_location_assignment PIN_R16 -to HPS_DDR3_DQS_N[0]
|
||||
set_location_assignment PIN_R16 -to HPS_DDR3_DQS_N_0
|
||||
set_location_assignment PIN_R18 -to HPS_DDR3_DQS_N[1]
|
||||
set_location_assignment PIN_R18 -to HPS_DDR3_DQS_N_1
|
||||
set_location_assignment PIN_T18 -to HPS_DDR3_DQS_N[2]
|
||||
set_location_assignment PIN_T18 -to HPS_DDR3_DQS_N_2
|
||||
set_location_assignment PIN_T20 -to HPS_DDR3_DQS_N[3]
|
||||
set_location_assignment PIN_T20 -to HPS_DDR3_DQS_N_3
|
||||
set_location_assignment PIN_R17 -to HPS_DDR3_DQS_P[0]
|
||||
set_location_assignment PIN_R17 -to HPS_DDR3_DQS_P_0
|
||||
set_location_assignment PIN_R19 -to HPS_DDR3_DQS_P[1]
|
||||
set_location_assignment PIN_R19 -to HPS_DDR3_DQS_P_1
|
||||
set_location_assignment PIN_T19 -to HPS_DDR3_DQS_P[2]
|
||||
set_location_assignment PIN_T19 -to HPS_DDR3_DQS_P_2
|
||||
set_location_assignment PIN_U19 -to HPS_DDR3_DQS_P[3]
|
||||
set_location_assignment PIN_U19 -to HPS_DDR3_DQS_P_3
|
||||
set_location_assignment PIN_D28 -to HPS_DDR3_ODT
|
||||
set_location_assignment PIN_A25 -to HPS_DDR3_RAS_N
|
||||
set_location_assignment PIN_V28 -to HPS_DDR3_RESET_N
|
||||
set_location_assignment PIN_D25 -to HPS_DDR3_RZQ
|
||||
set_location_assignment PIN_E25 -to HPS_DDR3_WE_N
|
||||
set_location_assignment PIN_J15 -to HPS_ENET_GTX_CLK
|
||||
set_location_assignment PIN_B14 -to HPS_ENET_INT_N
|
||||
set_location_assignment PIN_A13 -to HPS_ENET_MDC
|
||||
set_location_assignment PIN_E16 -to HPS_ENET_MDIO
|
||||
set_location_assignment PIN_J12 -to HPS_ENET_RX_CLK
|
||||
set_location_assignment PIN_A14 -to HPS_ENET_RX_DATA[0]
|
||||
set_location_assignment PIN_A14 -to HPS_ENET_RX_DATA_0
|
||||
set_location_assignment PIN_A11 -to HPS_ENET_RX_DATA[1]
|
||||
set_location_assignment PIN_A11 -to HPS_ENET_RX_DATA_1
|
||||
set_location_assignment PIN_C15 -to HPS_ENET_RX_DATA[2]
|
||||
set_location_assignment PIN_C15 -to HPS_ENET_RX_DATA_2
|
||||
set_location_assignment PIN_A9 -to HPS_ENET_RX_DATA[3]
|
||||
set_location_assignment PIN_A9 -to HPS_ENET_RX_DATA_3
|
||||
set_location_assignment PIN_J13 -to HPS_ENET_RX_DV
|
||||
set_location_assignment PIN_A16 -to HPS_ENET_TX_DATA[0]
|
||||
set_location_assignment PIN_A16 -to HPS_ENET_TX_DATA_0
|
||||
set_location_assignment PIN_J14 -to HPS_ENET_TX_DATA[1]
|
||||
set_location_assignment PIN_J14 -to HPS_ENET_TX_DATA_1
|
||||
set_location_assignment PIN_A15 -to HPS_ENET_TX_DATA[2]
|
||||
set_location_assignment PIN_A15 -to HPS_ENET_TX_DATA_2
|
||||
set_location_assignment PIN_D17 -to HPS_ENET_TX_DATA[3]
|
||||
set_location_assignment PIN_D17 -to HPS_ENET_TX_DATA_3
|
||||
set_location_assignment PIN_A12 -to HPS_ENET_TX_EN
|
||||
set_location_assignment PIN_A17 -to HPS_GSENSOR_INT
|
||||
set_location_assignment PIN_C18 -to HPS_I2C0_SCLK
|
||||
set_location_assignment PIN_A19 -to HPS_I2C0_SDAT
|
||||
set_location_assignment PIN_K18 -to HPS_I2C1_SCLK
|
||||
set_location_assignment PIN_A21 -to HPS_I2C1_SDAT
|
||||
set_location_assignment PIN_J18 -to HPS_KEY_N
|
||||
set_location_assignment PIN_A20 -to HPS_LED
|
||||
set_location_assignment PIN_H13 -to HPS_LTC_GPIO
|
||||
set_location_assignment PIN_B8 -to HPS_SD_CLK
|
||||
set_location_assignment PIN_D14 -to HPS_SD_CMD
|
||||
set_location_assignment PIN_C13 -to HPS_SD_DATA[0]
|
||||
set_location_assignment PIN_C13 -to HPS_SD_DATA_0
|
||||
set_location_assignment PIN_B6 -to HPS_SD_DATA[1]
|
||||
set_location_assignment PIN_B6 -to HPS_SD_DATA_1
|
||||
set_location_assignment PIN_B11 -to HPS_SD_DATA[2]
|
||||
set_location_assignment PIN_B11 -to HPS_SD_DATA_2
|
||||
set_location_assignment PIN_B9 -to HPS_SD_DATA[3]
|
||||
set_location_assignment PIN_B9 -to HPS_SD_DATA_3
|
||||
set_location_assignment PIN_C19 -to HPS_SPIM_CLK
|
||||
set_location_assignment PIN_B19 -to HPS_SPIM_MISO
|
||||
set_location_assignment PIN_B16 -to HPS_SPIM_MOSI
|
||||
set_location_assignment PIN_C16 -to HPS_SPIM_SS
|
||||
set_location_assignment PIN_A22 -to HPS_UART_RX
|
||||
set_location_assignment PIN_B21 -to HPS_UART_TX
|
||||
set_location_assignment PIN_G4 -to HPS_USB_CLKOUT
|
||||
set_location_assignment PIN_C10 -to HPS_USB_DATA[0]
|
||||
set_location_assignment PIN_C10 -to HPS_USB_DATA_0
|
||||
set_location_assignment PIN_F5 -to HPS_USB_DATA[1]
|
||||
set_location_assignment PIN_F5 -to HPS_USB_DATA_1
|
||||
set_location_assignment PIN_C9 -to HPS_USB_DATA[2]
|
||||
set_location_assignment PIN_C9 -to HPS_USB_DATA_2
|
||||
set_location_assignment PIN_C4 -to HPS_USB_DATA[3]
|
||||
set_location_assignment PIN_C4 -to HPS_USB_DATA_3
|
||||
set_location_assignment PIN_C8 -to HPS_USB_DATA[4]
|
||||
set_location_assignment PIN_C8 -to HPS_USB_DATA_4
|
||||
set_location_assignment PIN_D4 -to HPS_USB_DATA[5]
|
||||
set_location_assignment PIN_D4 -to HPS_USB_DATA_5
|
||||
set_location_assignment PIN_C7 -to HPS_USB_DATA[6]
|
||||
set_location_assignment PIN_C7 -to HPS_USB_DATA_6
|
||||
set_location_assignment PIN_F4 -to HPS_USB_DATA[7]
|
||||
set_location_assignment PIN_F4 -to HPS_USB_DATA_7
|
||||
set_location_assignment PIN_E5 -to HPS_USB_DIR
|
||||
set_location_assignment PIN_D5 -to HPS_USB_NXT
|
||||
set_location_assignment PIN_C5 -to HPS_USB_STP
|
||||
set_location_assignment PIN_AH17 -to KEY_N[0]
|
||||
set_location_assignment PIN_AH17 -to KEY_N_0
|
||||
set_location_assignment PIN_AH16 -to KEY_N[1]
|
||||
set_location_assignment PIN_AH16 -to KEY_N_1
|
||||
set_location_assignment PIN_W15 -to LED[0]
|
||||
set_location_assignment PIN_W15 -to LED_0
|
||||
set_location_assignment PIN_AA24 -to LED[1]
|
||||
set_location_assignment PIN_AA24 -to LED_1
|
||||
set_location_assignment PIN_V16 -to LED[2]
|
||||
set_location_assignment PIN_V16 -to LED_2
|
||||
set_location_assignment PIN_V15 -to LED[3]
|
||||
set_location_assignment PIN_V15 -to LED_3
|
||||
set_location_assignment PIN_AF26 -to LED[4]
|
||||
set_location_assignment PIN_AF26 -to LED_4
|
||||
set_location_assignment PIN_AE26 -to LED[5]
|
||||
set_location_assignment PIN_AE26 -to LED_5
|
||||
set_location_assignment PIN_Y16 -to LED[6]
|
||||
set_location_assignment PIN_Y16 -to LED_6
|
||||
set_location_assignment PIN_AA23 -to LED[7]
|
||||
set_location_assignment PIN_AA23 -to LED_7
|
||||
set_location_assignment PIN_L10 -to SW[0]
|
||||
set_location_assignment PIN_L10 -to SW_0
|
||||
set_location_assignment PIN_L9 -to SW[1]
|
||||
set_location_assignment PIN_L9 -to SW_1
|
||||
set_location_assignment PIN_H6 -to SW[2]
|
||||
set_location_assignment PIN_H6 -to SW_2
|
||||
set_location_assignment PIN_H5 -to SW[3]
|
||||
set_location_assignment PIN_H5 -to SW_3
|
||||
set_location_assignment PIN_V12 -to GPIO_0[0]
|
||||
set_location_assignment PIN_V12 -to GPIO_0_0
|
||||
set_location_assignment PIN_AF7 -to GPIO_0[1]
|
||||
set_location_assignment PIN_AF7 -to GPIO_0_1
|
||||
set_location_assignment PIN_W12 -to GPIO_0[2]
|
||||
set_location_assignment PIN_W12 -to GPIO_0_2
|
||||
set_location_assignment PIN_AF8 -to GPIO_0[3]
|
||||
set_location_assignment PIN_AF8 -to GPIO_0_3
|
||||
set_location_assignment PIN_Y8 -to GPIO_0[4]
|
||||
set_location_assignment PIN_Y8 -to GPIO_0_4
|
||||
set_location_assignment PIN_AB4 -to GPIO_0[5]
|
||||
set_location_assignment PIN_AB4 -to GPIO_0_5
|
||||
set_location_assignment PIN_W8 -to GPIO_0[6]
|
||||
set_location_assignment PIN_W8 -to GPIO_0_6
|
||||
set_location_assignment PIN_Y4 -to GPIO_0[7]
|
||||
set_location_assignment PIN_Y4 -to GPIO_0_7
|
||||
set_location_assignment PIN_Y5 -to GPIO_0[8]
|
||||
set_location_assignment PIN_Y5 -to GPIO_0_8
|
||||
set_location_assignment PIN_U11 -to GPIO_0[9]
|
||||
set_location_assignment PIN_U11 -to GPIO_0_9
|
||||
set_location_assignment PIN_T8 -to GPIO_0[10]
|
||||
set_location_assignment PIN_T8 -to GPIO_0_10
|
||||
set_location_assignment PIN_T12 -to GPIO_0[11]
|
||||
set_location_assignment PIN_T12 -to GPIO_0_11
|
||||
set_location_assignment PIN_AH5 -to GPIO_0[12]
|
||||
set_location_assignment PIN_AH5 -to GPIO_0_12
|
||||
set_location_assignment PIN_AH6 -to GPIO_0[13]
|
||||
set_location_assignment PIN_AH6 -to GPIO_0_13
|
||||
set_location_assignment PIN_AH4 -to GPIO_0[14]
|
||||
set_location_assignment PIN_AH4 -to GPIO_0_14
|
||||
set_location_assignment PIN_AG5 -to GPIO_0[15]
|
||||
set_location_assignment PIN_AG5 -to GPIO_0_15
|
||||
set_location_assignment PIN_AH3 -to GPIO_0[16]
|
||||
set_location_assignment PIN_AH3 -to GPIO_0_16
|
||||
set_location_assignment PIN_AH2 -to GPIO_0[17]
|
||||
set_location_assignment PIN_AH2 -to GPIO_0_17
|
||||
set_location_assignment PIN_AF4 -to GPIO_0[18]
|
||||
set_location_assignment PIN_AF4 -to GPIO_0_18
|
||||
set_location_assignment PIN_AG6 -to GPIO_0[19]
|
||||
set_location_assignment PIN_AG6 -to GPIO_0_19
|
||||
set_location_assignment PIN_AF5 -to GPIO_0[20]
|
||||
set_location_assignment PIN_AF5 -to GPIO_0_20
|
||||
set_location_assignment PIN_AE4 -to GPIO_0[21]
|
||||
set_location_assignment PIN_AE4 -to GPIO_0_21
|
||||
set_location_assignment PIN_T13 -to GPIO_0[22]
|
||||
set_location_assignment PIN_T13 -to GPIO_0_22
|
||||
set_location_assignment PIN_T11 -to GPIO_0[23]
|
||||
set_location_assignment PIN_T11 -to GPIO_0_23
|
||||
set_location_assignment PIN_AE7 -to GPIO_0[24]
|
||||
set_location_assignment PIN_AE7 -to GPIO_0_24
|
||||
set_location_assignment PIN_AF6 -to GPIO_0[25]
|
||||
set_location_assignment PIN_AF6 -to GPIO_0_25
|
||||
set_location_assignment PIN_AF9 -to GPIO_0[26]
|
||||
set_location_assignment PIN_AF9 -to GPIO_0_26
|
||||
set_location_assignment PIN_AE8 -to GPIO_0[27]
|
||||
set_location_assignment PIN_AE8 -to GPIO_0_27
|
||||
set_location_assignment PIN_AD10 -to GPIO_0[28]
|
||||
set_location_assignment PIN_AD10 -to GPIO_0_28
|
||||
set_location_assignment PIN_AE9 -to GPIO_0[29]
|
||||
set_location_assignment PIN_AE9 -to GPIO_0_29
|
||||
set_location_assignment PIN_AD11 -to GPIO_0[30]
|
||||
set_location_assignment PIN_AD11 -to GPIO_0_30
|
||||
set_location_assignment PIN_AF10 -to GPIO_0[31]
|
||||
set_location_assignment PIN_AF10 -to GPIO_0_31
|
||||
set_location_assignment PIN_AD12 -to GPIO_0[32]
|
||||
set_location_assignment PIN_AD12 -to GPIO_0_32
|
||||
set_location_assignment PIN_AE11 -to GPIO_0[33]
|
||||
set_location_assignment PIN_AE11 -to GPIO_0_33
|
||||
set_location_assignment PIN_AF11 -to GPIO_0[34]
|
||||
set_location_assignment PIN_AF11 -to GPIO_0_34
|
||||
set_location_assignment PIN_AE12 -to GPIO_0[35]
|
||||
set_location_assignment PIN_AE12 -to GPIO_0_35
|
||||
set_location_assignment PIN_Y15 -to GPIO_1[0]
|
||||
set_location_assignment PIN_Y15 -to GPIO_1_0
|
||||
set_location_assignment PIN_AG28 -to GPIO_1[1]
|
||||
set_location_assignment PIN_AG28 -to GPIO_1_1
|
||||
set_location_assignment PIN_AA15 -to GPIO_1[2]
|
||||
set_location_assignment PIN_AA15 -to GPIO_1_2
|
||||
set_location_assignment PIN_AH27 -to GPIO_1[3]
|
||||
set_location_assignment PIN_AH27 -to GPIO_1_3
|
||||
set_location_assignment PIN_AG26 -to GPIO_1[4]
|
||||
set_location_assignment PIN_AG26 -to GPIO_1_4
|
||||
set_location_assignment PIN_AH24 -to GPIO_1[5]
|
||||
set_location_assignment PIN_AH24 -to GPIO_1_5
|
||||
set_location_assignment PIN_AF23 -to GPIO_1[6]
|
||||
set_location_assignment PIN_AF23 -to GPIO_1_6
|
||||
set_location_assignment PIN_AE22 -to GPIO_1[7]
|
||||
set_location_assignment PIN_AE22 -to GPIO_1_7
|
||||
set_location_assignment PIN_AF21 -to GPIO_1[8]
|
||||
set_location_assignment PIN_AF21 -to GPIO_1_8
|
||||
set_location_assignment PIN_AG20 -to GPIO_1[9]
|
||||
set_location_assignment PIN_AG20 -to GPIO_1_9
|
||||
set_location_assignment PIN_AG19 -to GPIO_1[10]
|
||||
set_location_assignment PIN_AG19 -to GPIO_1_10
|
||||
set_location_assignment PIN_AF20 -to GPIO_1[11]
|
||||
set_location_assignment PIN_AF20 -to GPIO_1_11
|
||||
set_location_assignment PIN_AC23 -to GPIO_1[12]
|
||||
set_location_assignment PIN_AC23 -to GPIO_1_12
|
||||
set_location_assignment PIN_AG18 -to GPIO_1[13]
|
||||
set_location_assignment PIN_AG18 -to GPIO_1_13
|
||||
set_location_assignment PIN_AH26 -to GPIO_1[14]
|
||||
set_location_assignment PIN_AH26 -to GPIO_1_14
|
||||
set_location_assignment PIN_AA19 -to GPIO_1[15]
|
||||
set_location_assignment PIN_AA19 -to GPIO_1_15
|
||||
set_location_assignment PIN_AG24 -to GPIO_1[16]
|
||||
set_location_assignment PIN_AG24 -to GPIO_1_16
|
||||
set_location_assignment PIN_AF25 -to GPIO_1[17]
|
||||
set_location_assignment PIN_AF25 -to GPIO_1_17
|
||||
set_location_assignment PIN_AH23 -to GPIO_1[18]
|
||||
set_location_assignment PIN_AH23 -to GPIO_1_18
|
||||
set_location_assignment PIN_AG23 -to GPIO_1[19]
|
||||
set_location_assignment PIN_AG23 -to GPIO_1_19
|
||||
set_location_assignment PIN_AE19 -to GPIO_1[20]
|
||||
set_location_assignment PIN_AE19 -to GPIO_1_20
|
||||
set_location_assignment PIN_AF18 -to GPIO_1[21]
|
||||
set_location_assignment PIN_AF18 -to GPIO_1_21
|
||||
set_location_assignment PIN_AD19 -to GPIO_1[22]
|
||||
set_location_assignment PIN_AD19 -to GPIO_1_22
|
||||
set_location_assignment PIN_AE20 -to GPIO_1[23]
|
||||
set_location_assignment PIN_AE20 -to GPIO_1_23
|
||||
set_location_assignment PIN_AE24 -to GPIO_1[24]
|
||||
set_location_assignment PIN_AE24 -to GPIO_1_24
|
||||
set_location_assignment PIN_AD20 -to GPIO_1[25]
|
||||
set_location_assignment PIN_AD20 -to GPIO_1_25
|
||||
set_location_assignment PIN_AF22 -to GPIO_1[26]
|
||||
set_location_assignment PIN_AF22 -to GPIO_1_26
|
||||
set_location_assignment PIN_AH22 -to GPIO_1[27]
|
||||
set_location_assignment PIN_AH22 -to GPIO_1_27
|
||||
set_location_assignment PIN_AH19 -to GPIO_1[28]
|
||||
set_location_assignment PIN_AH19 -to GPIO_1_28
|
||||
set_location_assignment PIN_AH21 -to GPIO_1[29]
|
||||
set_location_assignment PIN_AH21 -to GPIO_1_29
|
||||
set_location_assignment PIN_AG21 -to GPIO_1[30]
|
||||
set_location_assignment PIN_AG21 -to GPIO_1_30
|
||||
set_location_assignment PIN_AH18 -to GPIO_1[31]
|
||||
set_location_assignment PIN_AH18 -to GPIO_1_31
|
||||
set_location_assignment PIN_AD23 -to GPIO_1[32]
|
||||
set_location_assignment PIN_AD23 -to GPIO_1_32
|
||||
set_location_assignment PIN_AE23 -to GPIO_1[33]
|
||||
set_location_assignment PIN_AE23 -to GPIO_1_33
|
||||
set_location_assignment PIN_AA18 -to GPIO_1[34]
|
||||
set_location_assignment PIN_AA18 -to GPIO_1_34
|
||||
set_location_assignment PIN_AC22 -to GPIO_1[35]
|
||||
set_location_assignment PIN_AC22 -to GPIO_1_35
|
||||
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
|
||||
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
|
||||
set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW"
|
||||
set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_CONVST
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_SCK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_SDI
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_SDO
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[4]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_4
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[5]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_5
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[6]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_6
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[7]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_7
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[8]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_8
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[9]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_9
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[10]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_10
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[11]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_11
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[12]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_12
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[13]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_13
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[14]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_14
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[15]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_15
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_RESET_N
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FPGA_CLK1_50
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FPGA_CLK2_50
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FPGA_CLK3_50
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_CONV_USB_N
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[0]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[1]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_1
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[2]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_2
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[3]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_3
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[4]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_4
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[5]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_5
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[6]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_6
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[7]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_7
|
||||
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[10]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[11]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[12]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[13]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[14]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[15]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[16]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[17]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[18]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[19]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[20]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[21]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[22]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[23]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[24]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[25]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[26]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[27]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[28]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[29]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[30]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[31]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[32]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[33]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[34]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[35]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[4]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[5]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[6]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[7]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[8]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0[9]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_10
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_11
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_12
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_13
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_14
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_15
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_16
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_17
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_18
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_19
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_20
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_21
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_22
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_23
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_24
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_25
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_26
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_27
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_28
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_29
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_30
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_31
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_32
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_33
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_34
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_35
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_4
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_5
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_6
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_7
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_8
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_9
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[10]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[11]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[12]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[13]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[14]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[15]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[16]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[17]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[18]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[19]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[20]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[21]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[22]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[23]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[24]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[25]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[26]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[27]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[28]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[29]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[30]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[31]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[32]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[33]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[34]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[35]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[4]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[5]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[6]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[7]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[8]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1[9]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_10
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_11
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_12
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_13
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_14
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_15
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_16
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_17
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_18
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_19
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_20
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_21
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_22
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_23
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_24
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_25
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_26
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_27
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_28
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_29
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_30
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_31
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_32
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_33
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_34
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_35
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_4
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_5
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_6
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_7
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_8
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_9
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[10]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[11]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[12]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[13]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[14]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[8]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[9]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_10
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_11
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_12
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_13
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_14
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_8
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_9
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_BA[0]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_BA[1]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_BA[2]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_BA_0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_BA_1
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_BA_2
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_CAS_N
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_CKE
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_CK_N
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_CK_P
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_CS_N
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM[0]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM[1]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM[2]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM[3]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM_0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM_1
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM_2
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM_3
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N[0]
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N[1]
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N[2]
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N[3]
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N_0
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N_1
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N_2
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N_3
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P[0]
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P[1]
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P[2]
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P[3]
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P_0
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P_1
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P_2
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P_3
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[0]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[10]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[11]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[12]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[13]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[14]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[15]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[16]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[17]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[18]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[19]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[1]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[20]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[21]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[22]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[23]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[24]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[25]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[26]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[27]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[28]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[29]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[2]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[30]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[31]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[3]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[4]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[5]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[6]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[7]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[8]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[9]
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_1
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_10
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_11
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_12
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_13
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_14
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_15
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_16
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_17
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_18
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_19
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_2
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_20
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_21
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_22
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_23
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_24
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_25
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_26
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_27
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_28
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_29
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_3
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_30
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_31
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_4
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_5
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_6
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_7
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_8
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_9
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ODT
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_RAS_N
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_RESET_N
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_RZQ
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_WE_N
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_GTX_CLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_INT_N
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_MDC
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_MDIO
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_CLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DV
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_EN
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_GSENSOR_INT
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_I2C0_SCLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_I2C0_SDAT
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_I2C1_SCLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_I2C1_SDAT
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_KEY_N
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_LED
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_LTC_GPIO
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_CLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_CMD
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SPIM_CLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SPIM_MISO
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SPIM_MOSI
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SPIM_SS
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_UART_RX
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_UART_TX
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_CLKOUT
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[4]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[5]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[6]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[7]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_4
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_5
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_6
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_7
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DIR
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_NXT
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_STP
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY_N[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY_N[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY_N_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY_N_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[4]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[5]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[6]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[7]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_4
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_5
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_6
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_7
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW_3
|
||||
set_global_assignment -name SMART_RECOMPILE OFF
|
||||
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
|
||||
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
|
||||
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
|
||||
set_global_assignment -name VHDL_FILE ../hdl/WS28XX/WSDriver.vhd
|
||||
set_global_assignment -name VHDL_FILE ../hdl/WS28XX/WS28XX.vhd
|
||||
set_global_assignment -name VHDL_FILE ../hdl/WS28XX/ClkGen.vhd
|
||||
set_global_assignment -name VHDL_FILE ../hdl/DE0_Nano_SoC_top_level.vhd
|
||||
set_global_assignment -name QSYS_FILE system.qsys
|
||||
set_global_assignment -name VHDL_INPUT_VERSION VHDL_2008
|
||||
set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF
|
||||
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
|
490
cs473-es/lab2/ch/hw/quartus/system.qsys
Normal file
490
cs473-es/lab2/ch/hw/quartus/system.qsys
Normal file
File diff suppressed because one or more lines are too long
6640
cs473-es/lab2/ch/hw/quartus/system.sopcinfo
Normal file
6640
cs473-es/lab2/ch/hw/quartus/system.sopcinfo
Normal file
File diff suppressed because one or more lines are too long
80
cs473-es/lab2/ch/sw/nios/application/hello_world.c
Executable file
80
cs473-es/lab2/ch/sw/nios/application/hello_world.c
Executable file
@@ -0,0 +1,80 @@
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <math.h>
|
||||
#include "io.h"
|
||||
#include "system.h"
|
||||
|
||||
#include "stdint.h"
|
||||
#include "stddef.h"
|
||||
|
||||
#define SET_LED_COUNT(n) IOWR_32DIRECT(WS28XX_0_BASE,0x4,n)
|
||||
#define SET_LED_RGB(n,v) IOWR_32DIRECT(WS28XX_0_BASE,0x0,(n&0xFF)<<24 | (v&0xFFFFFF));
|
||||
#define CLEAR_LED_RGB(n) IOWR_32DIRECT(WS28XX_0_BASE,0x0,(n&0xFF)<<24 | 0);
|
||||
|
||||
|
||||
int hsv2rgb(float H, float S, float V);
|
||||
int led_idx(int idx, int max);
|
||||
|
||||
#define LEDN (16)
|
||||
#define LED_RGB(n,b) hsv2rgb((n/(float) LEDN),1.0,b)
|
||||
|
||||
int main()
|
||||
{
|
||||
SET_LED_COUNT(LEDN);
|
||||
uint8_t led = 0;
|
||||
while(1){
|
||||
|
||||
for(uint8_t i = 0; i < LEDN; ++i){
|
||||
if(i == led){
|
||||
SET_LED_RGB(i,LED_RGB(i,1.0));
|
||||
}else if(i == led_idx(led-1,LEDN) || i == led_idx(led+1,LEDN) ){
|
||||
SET_LED_RGB(i,LED_RGB(i,0.5));
|
||||
}else if(i == led_idx(led-2,LEDN) || i == led_idx(led+2,LEDN) ){
|
||||
SET_LED_RGB(i,LED_RGB(i,0.25));
|
||||
}else{
|
||||
CLEAR_LED_RGB(i);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
++led;
|
||||
if(led>=LEDN) led = 0;
|
||||
for(int i =0 ; i < 100000; ++i);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int led_idx(int idx, int max){
|
||||
if(idx<0) return idx+max;
|
||||
if(idx>max) return idx-max;
|
||||
}
|
||||
|
||||
|
||||
//Strongly Inspired from
|
||||
//https://github.com/Inseckto/HSV-to-RGB/blob/master/HSV2RGB.c
|
||||
|
||||
int hsv2rgb(float h, float s, float v) {
|
||||
float r, g, b;
|
||||
|
||||
int i = floor(h * 6);
|
||||
float f = h * 6 - i;
|
||||
float p = v * (1 - s);
|
||||
float q = v * (1 - f * s);
|
||||
float t = v * (1 - (1 - f) * s);
|
||||
|
||||
switch (i % 6) {
|
||||
case 0: r = v, g = t, b = p; break;
|
||||
case 1: r = q, g = v, b = p; break;
|
||||
case 2: r = p, g = v, b = t; break;
|
||||
case 3: r = p, g = q, b = v; break;
|
||||
case 4: r = t, g = p, b = v; break;
|
||||
case 5: r = v, g = p, b = q; break;
|
||||
}
|
||||
|
||||
int fr = ((int)(r*255))&0xFF;
|
||||
int fg = ((int)(g*255))&0xFF;
|
||||
int fb = ((int)(b*255))&0xFF;
|
||||
|
||||
return fr<<16 | fg<<8 | fb<<0;
|
||||
}
|
||||
|
BIN
cs473-es/lab2/handout.pdf
Normal file
BIN
cs473-es/lab2/handout.pdf
Normal file
Binary file not shown.
178
cs473-es/lab3/hw/hdl/DE0_Nano_SoC_LT24_top_level.vhd
Normal file
178
cs473-es/lab3/hw/hdl/DE0_Nano_SoC_LT24_top_level.vhd
Normal file
@@ -0,0 +1,178 @@
|
||||
-- #############################################################################
|
||||
-- DE0_Nano_SoC_LT24_top_level.vhd
|
||||
--
|
||||
-- BOARD : DE0-Nano-SoC from Terasic
|
||||
-- Author : Sahand Kashani-Akhavan from Terasic documentation
|
||||
-- Revision : 1.2
|
||||
-- Creation date : 11/06/2015
|
||||
--
|
||||
-- Syntax Rule : GROUP_NAME_N[bit]
|
||||
--
|
||||
-- GROUP : specify a particular interface (ex: SDR_)
|
||||
-- NAME : signal name (ex: CONFIG, D, ...)
|
||||
-- bit : signal index
|
||||
-- _N : to specify an active-low signal
|
||||
-- #############################################################################
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
|
||||
entity DE0_Nano_SoC_LT24_top_level is
|
||||
port(
|
||||
-- -- ADC
|
||||
-- ADC_CONVST : out std_logic;
|
||||
-- ADC_SCK : out std_logic;
|
||||
-- ADC_SDI : out std_logic;
|
||||
-- ADC_SDO : in std_logic;
|
||||
|
||||
-- -- ARDUINO
|
||||
-- ARDUINO_IO : inout std_logic_vector(15 downto 0);
|
||||
-- ARDUINO_RESET_N : inout std_logic;
|
||||
|
||||
-- CLOCK
|
||||
FPGA_CLK1_50 : in std_logic;
|
||||
-- FPGA_CLK2_50 : in std_logic;
|
||||
-- FPGA_CLK3_50 : in std_logic;
|
||||
|
||||
-- -- KEY
|
||||
KEY_N : in std_logic_vector(1 downto 0);
|
||||
|
||||
-- -- LED
|
||||
-- LED : out std_logic_vector(7 downto 0);
|
||||
|
||||
-- -- SW
|
||||
-- SW : in std_logic_vector(3 downto 0);
|
||||
|
||||
-- GPIO_0
|
||||
-- GPIO_0_LT24_ADC_BUSY : in std_logic;
|
||||
-- GPIO_0_LT24_ADC_CS_N : out std_logic;
|
||||
-- GPIO_0_LT24_ADC_DCLK : out std_logic;
|
||||
-- GPIO_0_LT24_ADC_DIN : out std_logic;
|
||||
-- GPIO_0_LT24_ADC_DOUT : in std_logic;
|
||||
-- GPIO_0_LT24_ADC_PENIRQ_N : in std_logic;
|
||||
GPIO_0_LT24_CS_N : out std_logic;
|
||||
GPIO_0_LT24_D : out std_logic_vector(15 downto 0);
|
||||
GPIO_0_LT24_LCD_ON : out std_logic;
|
||||
GPIO_0_LT24_RD_N : out std_logic;
|
||||
GPIO_0_LT24_RESET_N : out std_logic;
|
||||
GPIO_0_LT24_RS : out std_logic;
|
||||
GPIO_0_LT24_WR_N : out std_logic;
|
||||
|
||||
-- GPIO_1
|
||||
--GPIO_1 : inout std_logic_vector(35 downto 0);
|
||||
|
||||
-- HPS
|
||||
--HPS_CONV_USB_N : inout std_logic;
|
||||
HPS_DDR3_ADDR : out std_logic_vector(14 downto 0);
|
||||
HPS_DDR3_BA : out std_logic_vector(2 downto 0);
|
||||
HPS_DDR3_CAS_N : out std_logic;
|
||||
HPS_DDR3_CK_N : out std_logic;
|
||||
HPS_DDR3_CK_P : out std_logic;
|
||||
HPS_DDR3_CKE : out std_logic;
|
||||
HPS_DDR3_CS_N : out std_logic;
|
||||
HPS_DDR3_DM : out std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQ : inout std_logic_vector(31 downto 0);
|
||||
HPS_DDR3_DQS_N : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQS_P : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_ODT : out std_logic;
|
||||
HPS_DDR3_RAS_N : out std_logic;
|
||||
HPS_DDR3_RESET_N : out std_logic;
|
||||
HPS_DDR3_RZQ : in std_logic;
|
||||
HPS_DDR3_WE_N : out std_logic
|
||||
--HPS_ENET_GTX_CLK : out std_logic;
|
||||
--HPS_ENET_INT_N : inout std_logic;
|
||||
--HPS_ENET_MDC : out std_logic;
|
||||
--HPS_ENET_MDIO : inout std_logic;
|
||||
--HPS_ENET_RX_CLK : in std_logic;
|
||||
--HPS_ENET_RX_DATA : in std_logic_vector(3 downto 0);
|
||||
--HPS_ENET_RX_DV : in std_logic;
|
||||
--HPS_ENET_TX_DATA : out std_logic_vector(3 downto 0);
|
||||
--HPS_ENET_TX_EN : out std_logic;
|
||||
--HPS_GSENSOR_INT : inout std_logic;
|
||||
--HPS_I2C0_SCLK : inout std_logic;
|
||||
--HPS_I2C0_SDAT : inout std_logic;
|
||||
--HPS_I2C1_SCLK : inout std_logic;
|
||||
--HPS_I2C1_SDAT : inout std_logic;
|
||||
--HPS_KEY_N : inout std_logic;
|
||||
--HPS_LED : inout std_logic;
|
||||
--HPS_LTC_GPIO : inout std_logic;
|
||||
--HPS_SD_CLK : out std_logic;
|
||||
--HPS_SD_CMD : inout std_logic;
|
||||
--HPS_SD_DATA : inout std_logic_vector(3 downto 0)
|
||||
--HPS_SPIM_CLK : out std_logic;
|
||||
--HPS_SPIM_MISO : in std_logic;
|
||||
--HPS_SPIM_MOSI : out std_logic;
|
||||
--HPS_SPIM_SS : inout std_logic;
|
||||
--HPS_UART_RX : in std_logic;
|
||||
--HPS_UART_TX : out std_logic
|
||||
--HPS_USB_CLKOUT : in std_logic;
|
||||
--HPS_USB_DATA : inout std_logic_vector(7 downto 0);
|
||||
--HPS_USB_DIR : in std_logic;
|
||||
--HPS_USB_NXT : in std_logic;
|
||||
--HPS_USB_STP : out std_logic
|
||||
);
|
||||
end entity DE0_Nano_SoC_LT24_top_level;
|
||||
|
||||
architecture rtl of DE0_Nano_SoC_LT24_top_level is
|
||||
component system is
|
||||
port (
|
||||
clk_clk : in std_logic;
|
||||
hps_memory_mem_a : out std_logic_vector(14 downto 0); -- mem_a
|
||||
hps_memory_mem_ba : out std_logic_vector(2 downto 0); -- mem_ba
|
||||
hps_memory_mem_ck : out std_logic; -- mem_ck
|
||||
hps_memory_mem_ck_n : out std_logic; -- mem_ck_n
|
||||
hps_memory_mem_cke : out std_logic; -- mem_cke
|
||||
hps_memory_mem_cs_n : out std_logic; -- mem_cs_n
|
||||
hps_memory_mem_ras_n : out std_logic; -- mem_ras_n
|
||||
hps_memory_mem_cas_n : out std_logic; -- mem_cas_n
|
||||
hps_memory_mem_we_n : out std_logic; -- mem_we_n
|
||||
hps_memory_mem_reset_n : out std_logic; -- mem_reset_n
|
||||
hps_memory_mem_dq : inout std_logic_vector(31 downto 0) := (others => 'X'); -- mem_dq
|
||||
hps_memory_mem_dqs : inout std_logic_vector(3 downto 0) := (others => 'X'); -- mem_dqs
|
||||
hps_memory_mem_dqs_n : inout std_logic_vector(3 downto 0) := (others => 'X'); -- mem_dqs_n
|
||||
hps_memory_mem_odt : out std_logic; -- mem_odt
|
||||
hps_memory_mem_dm : out std_logic_vector(3 downto 0); -- mem_dm
|
||||
hps_memory_oct_rzqin : in std_logic := 'X'; -- oct_rzqin
|
||||
lcdcontroller_0_lt24_data : out std_logic_vector(15 downto 0);
|
||||
lcdcontroller_0_lt24_rd_n : out std_logic;
|
||||
lcdcontroller_0_lt24_wr_n : out std_logic;
|
||||
lcdcontroller_0_lt24_rs : out std_logic;
|
||||
lcdcontroller_0_lt24_cs_n : out std_logic;
|
||||
lcdcontroller_0_lt24_reset_n : out std_logic;
|
||||
lcdcontroller_0_lt24_lcd_on : out std_logic;
|
||||
reset_reset_n : in std_logic
|
||||
);
|
||||
end component system;
|
||||
|
||||
begin
|
||||
|
||||
u0 : component system
|
||||
port map (
|
||||
clk_clk => FPGA_CLK1_50,
|
||||
hps_memory_mem_a => HPS_DDR3_ADDR,
|
||||
hps_memory_mem_ba => HPS_DDR3_BA,
|
||||
hps_memory_mem_ck => HPS_DDR3_CK_P,
|
||||
hps_memory_mem_ck_n => HPS_DDR3_CK_N,
|
||||
hps_memory_mem_cke => HPS_DDR3_CKE,
|
||||
hps_memory_mem_cs_n => HPS_DDR3_CS_N,
|
||||
hps_memory_mem_ras_n => HPS_DDR3_RAS_N,
|
||||
hps_memory_mem_cas_n => HPS_DDR3_CAS_N,
|
||||
hps_memory_mem_we_n => HPS_DDR3_WE_N,
|
||||
hps_memory_mem_reset_n => HPS_DDR3_RESET_N,
|
||||
hps_memory_mem_dq => HPS_DDR3_DQ,
|
||||
hps_memory_mem_dqs => HPS_DDR3_DQS_P,
|
||||
hps_memory_mem_dqs_n => HPS_DDR3_DQS_N,
|
||||
hps_memory_mem_odt => HPS_DDR3_ODT,
|
||||
hps_memory_mem_dm => HPS_DDR3_DM,
|
||||
hps_memory_oct_rzqin => HPS_DDR3_RZQ,
|
||||
reset_reset_n => KEY_N(0),
|
||||
lcdcontroller_0_lt24_data => GPIO_0_LT24_D,
|
||||
lcdcontroller_0_lt24_cs_n => GPIO_0_LT24_CS_N,
|
||||
lcdcontroller_0_lt24_rd_n => GPIO_0_LT24_RD_N,
|
||||
lcdcontroller_0_lt24_wr_n => GPIO_0_LT24_WR_N,
|
||||
lcdcontroller_0_lt24_rs => GPIO_0_LT24_RS,
|
||||
lcdcontroller_0_lt24_reset_n => GPIO_0_LT24_RESET_N,
|
||||
lcdcontroller_0_lt24_lcd_on => GPIO_0_LT24_LCD_ON
|
||||
);
|
||||
|
||||
end;
|
129
cs473-es/lab3/hw/hdl/DE0_Nano_SoC_TRDB_D5M_LT24_top_level.vhd
Normal file
129
cs473-es/lab3/hw/hdl/DE0_Nano_SoC_TRDB_D5M_LT24_top_level.vhd
Normal file
@@ -0,0 +1,129 @@
|
||||
-- #############################################################################
|
||||
-- DE0_Nano_SoC_TRDB_D5M_LT24_top_level.vhd
|
||||
--
|
||||
-- BOARD : DE0-Nano-SoC from Terasic
|
||||
-- Author : Sahand Kashani-Akhavan from Terasic documentation
|
||||
-- Revision : 1.3
|
||||
-- Creation date : 11/06/2015
|
||||
--
|
||||
-- Syntax Rule : GROUP_NAME_N[bit]
|
||||
--
|
||||
-- GROUP : specify a particular interface (ex: SDR_)
|
||||
-- NAME : signal name (ex: CONFIG, D, ...)
|
||||
-- bit : signal index
|
||||
-- _N : to specify an active-low signal
|
||||
-- #############################################################################
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
|
||||
entity DE0_Nano_SoC_TRDB_D5M_LT24_top_level is
|
||||
port(
|
||||
-- ADC
|
||||
ADC_CONVST : out std_logic;
|
||||
ADC_SCK : out std_logic;
|
||||
ADC_SDI : out std_logic;
|
||||
ADC_SDO : in std_logic;
|
||||
|
||||
-- ARDUINO
|
||||
ARDUINO_IO : inout std_logic_vector(15 downto 0);
|
||||
ARDUINO_RESET_N : inout std_logic;
|
||||
|
||||
-- CLOCK
|
||||
FPGA_CLK1_50 : in std_logic;
|
||||
FPGA_CLK2_50 : in std_logic;
|
||||
FPGA_CLK3_50 : in std_logic;
|
||||
|
||||
-- KEY
|
||||
KEY_N : in std_logic_vector(1 downto 0);
|
||||
|
||||
-- LED
|
||||
LED : out std_logic_vector(7 downto 0);
|
||||
|
||||
-- SW
|
||||
SW : in std_logic_vector(3 downto 0);
|
||||
|
||||
-- GPIO_0
|
||||
GPIO_0_LT24_ADC_BUSY : in std_logic;
|
||||
GPIO_0_LT24_ADC_CS_N : out std_logic;
|
||||
GPIO_0_LT24_ADC_DCLK : out std_logic;
|
||||
GPIO_0_LT24_ADC_DIN : out std_logic;
|
||||
GPIO_0_LT24_ADC_DOUT : in std_logic;
|
||||
GPIO_0_LT24_ADC_PENIRQ_N : in std_logic;
|
||||
GPIO_0_LT24_CS_N : out std_logic;
|
||||
GPIO_0_LT24_D : out std_logic_vector(15 downto 0);
|
||||
GPIO_0_LT24_LCD_ON : out std_logic;
|
||||
GPIO_0_LT24_RD_N : out std_logic;
|
||||
GPIO_0_LT24_RESET_N : out std_logic;
|
||||
GPIO_0_LT24_RS : out std_logic;
|
||||
GPIO_0_LT24_WR_N : out std_logic;
|
||||
|
||||
-- GPIO_1
|
||||
GPIO_1_D5M_D : in std_logic_vector(11 downto 0);
|
||||
GPIO_1_D5M_FVAL : in std_logic;
|
||||
GPIO_1_D5M_LVAL : in std_logic;
|
||||
GPIO_1_D5M_PIXCLK : in std_logic;
|
||||
GPIO_1_D5M_RESET_N : out std_logic;
|
||||
GPIO_1_D5M_SCLK : inout std_logic;
|
||||
GPIO_1_D5M_SDATA : inout std_logic;
|
||||
GPIO_1_D5M_STROBE : in std_logic;
|
||||
GPIO_1_D5M_TRIGGER : out std_logic;
|
||||
GPIO_1_D5M_XCLKIN : out std_logic;
|
||||
|
||||
-- HPS
|
||||
HPS_CONV_USB_N : inout std_logic;
|
||||
HPS_DDR3_ADDR : out std_logic_vector(14 downto 0);
|
||||
HPS_DDR3_BA : out std_logic_vector(2 downto 0);
|
||||
HPS_DDR3_CAS_N : out std_logic;
|
||||
HPS_DDR3_CK_N : out std_logic;
|
||||
HPS_DDR3_CK_P : out std_logic;
|
||||
HPS_DDR3_CKE : out std_logic;
|
||||
HPS_DDR3_CS_N : out std_logic;
|
||||
HPS_DDR3_DM : out std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQ : inout std_logic_vector(31 downto 0);
|
||||
HPS_DDR3_DQS_N : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQS_P : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_ODT : out std_logic;
|
||||
HPS_DDR3_RAS_N : out std_logic;
|
||||
HPS_DDR3_RESET_N : out std_logic;
|
||||
HPS_DDR3_RZQ : in std_logic;
|
||||
HPS_DDR3_WE_N : out std_logic;
|
||||
HPS_ENET_GTX_CLK : out std_logic;
|
||||
HPS_ENET_INT_N : inout std_logic;
|
||||
HPS_ENET_MDC : out std_logic;
|
||||
HPS_ENET_MDIO : inout std_logic;
|
||||
HPS_ENET_RX_CLK : in std_logic;
|
||||
HPS_ENET_RX_DATA : in std_logic_vector(3 downto 0);
|
||||
HPS_ENET_RX_DV : in std_logic;
|
||||
HPS_ENET_TX_DATA : out std_logic_vector(3 downto 0);
|
||||
HPS_ENET_TX_EN : out std_logic;
|
||||
HPS_GSENSOR_INT : inout std_logic;
|
||||
HPS_I2C0_SCLK : inout std_logic;
|
||||
HPS_I2C0_SDAT : inout std_logic;
|
||||
HPS_I2C1_SCLK : inout std_logic;
|
||||
HPS_I2C1_SDAT : inout std_logic;
|
||||
HPS_KEY_N : inout std_logic;
|
||||
HPS_LED : inout std_logic;
|
||||
HPS_LTC_GPIO : inout std_logic;
|
||||
HPS_SD_CLK : out std_logic;
|
||||
HPS_SD_CMD : inout std_logic;
|
||||
HPS_SD_DATA : inout std_logic_vector(3 downto 0);
|
||||
HPS_SPIM_CLK : out std_logic;
|
||||
HPS_SPIM_MISO : in std_logic;
|
||||
HPS_SPIM_MOSI : out std_logic;
|
||||
HPS_SPIM_SS : inout std_logic;
|
||||
HPS_UART_RX : in std_logic;
|
||||
HPS_UART_TX : out std_logic;
|
||||
HPS_USB_CLKOUT : in std_logic;
|
||||
HPS_USB_DATA : inout std_logic_vector(7 downto 0);
|
||||
HPS_USB_DIR : in std_logic;
|
||||
HPS_USB_NXT : in std_logic;
|
||||
HPS_USB_STP : out std_logic
|
||||
);
|
||||
end entity DE0_Nano_SoC_TRDB_D5M_LT24_top_level;
|
||||
|
||||
architecture rtl of DE0_Nano_SoC_TRDB_D5M_LT24_top_level is
|
||||
|
||||
begin
|
||||
|
||||
end;
|
125
cs473-es/lab3/hw/hdl/DE0_Nano_SoC_TRDB_D5M_VGA_top_level.vhd
Normal file
125
cs473-es/lab3/hw/hdl/DE0_Nano_SoC_TRDB_D5M_VGA_top_level.vhd
Normal file
@@ -0,0 +1,125 @@
|
||||
-- #############################################################################
|
||||
-- DE0_Nano_SoC_TRDB_D5M_VGA_top_level.vhd
|
||||
--
|
||||
-- BOARD : DE0-Nano-SoC from Terasic
|
||||
-- Author : Sahand Kashani-Akhavan from Terasic documentation
|
||||
-- Revision : 1.2
|
||||
-- Creation date : 11/06/2015
|
||||
--
|
||||
-- Syntax Rule : GROUP_NAME_N[bit]
|
||||
--
|
||||
-- GROUP : specify a particular interface (ex: SDR_)
|
||||
-- NAME : signal name (ex: CONFIG, D, ...)
|
||||
-- bit : signal index
|
||||
-- _N : to specify an active-low signal
|
||||
-- #############################################################################
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
|
||||
entity DE0_Nano_SoC_TRDB_D5M_VGA_top_level is
|
||||
port(
|
||||
-- ADC
|
||||
ADC_CONVST : out std_logic;
|
||||
ADC_SCK : out std_logic;
|
||||
ADC_SDI : out std_logic;
|
||||
ADC_SDO : in std_logic;
|
||||
|
||||
-- ARDUINO
|
||||
ARDUINO_IO : inout std_logic_vector(15 downto 0);
|
||||
ARDUINO_RESET_N : inout std_logic;
|
||||
|
||||
-- CLOCK
|
||||
FPGA_CLK1_50 : in std_logic;
|
||||
FPGA_CLK2_50 : in std_logic;
|
||||
FPGA_CLK3_50 : in std_logic;
|
||||
|
||||
-- KEY
|
||||
KEY_N : in std_logic_vector(1 downto 0);
|
||||
|
||||
-- LED
|
||||
LED : out std_logic_vector(7 downto 0);
|
||||
|
||||
-- SW
|
||||
SW : in std_logic_vector(3 downto 0);
|
||||
|
||||
-- GPIO_0
|
||||
GPIO_0_VGA_VIDEO_R : out std_logic_vector(7 downto 0);
|
||||
GPIO_0_VGA_VIDEO_G : out std_logic_vector(7 downto 0);
|
||||
GPIO_0_VGA_VIDEO_B : out std_logic_vector(7 downto 0);
|
||||
GPIO_0_VGA_VIDEO_HSYNC : out std_logic;
|
||||
GPIO_0_VGA_VIDEO_VSYNC : out std_logic;
|
||||
GPIO_0_VGA_VIDEO_CLK : out std_logic;
|
||||
GPIO_0_VGA_CAM_PAL_VGA_SCL : out std_logic;
|
||||
GPIO_0_VGA_CAM_PAL_VGA_SDA : inout std_logic;
|
||||
GPIO_0_VGA_BOARD_ID : inout std_logic;
|
||||
|
||||
-- GPIO_1
|
||||
GPIO_1_D5M_D : in std_logic_vector(11 downto 0);
|
||||
GPIO_1_D5M_FVAL : in std_logic;
|
||||
GPIO_1_D5M_LVAL : in std_logic;
|
||||
GPIO_1_D5M_PIXCLK : in std_logic;
|
||||
GPIO_1_D5M_RESET_N : out std_logic;
|
||||
GPIO_1_D5M_SCLK : inout std_logic;
|
||||
GPIO_1_D5M_SDATA : inout std_logic;
|
||||
GPIO_1_D5M_STROBE : in std_logic;
|
||||
GPIO_1_D5M_TRIGGER : out std_logic;
|
||||
GPIO_1_D5M_XCLKIN : out std_logic;
|
||||
|
||||
-- HPS
|
||||
HPS_CONV_USB_N : inout std_logic;
|
||||
HPS_DDR3_ADDR : out std_logic_vector(14 downto 0);
|
||||
HPS_DDR3_BA : out std_logic_vector(2 downto 0);
|
||||
HPS_DDR3_CAS_N : out std_logic;
|
||||
HPS_DDR3_CK_N : out std_logic;
|
||||
HPS_DDR3_CK_P : out std_logic;
|
||||
HPS_DDR3_CKE : out std_logic;
|
||||
HPS_DDR3_CS_N : out std_logic;
|
||||
HPS_DDR3_DM : out std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQ : inout std_logic_vector(31 downto 0);
|
||||
HPS_DDR3_DQS_N : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQS_P : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_ODT : out std_logic;
|
||||
HPS_DDR3_RAS_N : out std_logic;
|
||||
HPS_DDR3_RESET_N : out std_logic;
|
||||
HPS_DDR3_RZQ : in std_logic;
|
||||
HPS_DDR3_WE_N : out std_logic;
|
||||
HPS_ENET_GTX_CLK : out std_logic;
|
||||
HPS_ENET_INT_N : inout std_logic;
|
||||
HPS_ENET_MDC : out std_logic;
|
||||
HPS_ENET_MDIO : inout std_logic;
|
||||
HPS_ENET_RX_CLK : in std_logic;
|
||||
HPS_ENET_RX_DATA : in std_logic_vector(3 downto 0);
|
||||
HPS_ENET_RX_DV : in std_logic;
|
||||
HPS_ENET_TX_DATA : out std_logic_vector(3 downto 0);
|
||||
HPS_ENET_TX_EN : out std_logic;
|
||||
HPS_GSENSOR_INT : inout std_logic;
|
||||
HPS_I2C0_SCLK : inout std_logic;
|
||||
HPS_I2C0_SDAT : inout std_logic;
|
||||
HPS_I2C1_SCLK : inout std_logic;
|
||||
HPS_I2C1_SDAT : inout std_logic;
|
||||
HPS_KEY_N : inout std_logic;
|
||||
HPS_LED : inout std_logic;
|
||||
HPS_LTC_GPIO : inout std_logic;
|
||||
HPS_SD_CLK : out std_logic;
|
||||
HPS_SD_CMD : inout std_logic;
|
||||
HPS_SD_DATA : inout std_logic_vector(3 downto 0);
|
||||
HPS_SPIM_CLK : out std_logic;
|
||||
HPS_SPIM_MISO : in std_logic;
|
||||
HPS_SPIM_MOSI : out std_logic;
|
||||
HPS_SPIM_SS : inout std_logic;
|
||||
HPS_UART_RX : in std_logic;
|
||||
HPS_UART_TX : out std_logic;
|
||||
HPS_USB_CLKOUT : in std_logic;
|
||||
HPS_USB_DATA : inout std_logic_vector(7 downto 0);
|
||||
HPS_USB_DIR : in std_logic;
|
||||
HPS_USB_NXT : in std_logic;
|
||||
HPS_USB_STP : out std_logic
|
||||
);
|
||||
end entity DE0_Nano_SoC_TRDB_D5M_VGA_top_level;
|
||||
|
||||
architecture rtl of DE0_Nano_SoC_TRDB_D5M_VGA_top_level is
|
||||
|
||||
begin
|
||||
|
||||
end;
|
117
cs473-es/lab3/hw/hdl/DE0_Nano_SoC_TRDB_D5M_top_level.vhd
Normal file
117
cs473-es/lab3/hw/hdl/DE0_Nano_SoC_TRDB_D5M_top_level.vhd
Normal file
@@ -0,0 +1,117 @@
|
||||
-- #############################################################################
|
||||
-- DE0_Nano_SoC_TRDB_D5M_top_level.vhd
|
||||
--
|
||||
-- BOARD : DE0-Nano-SoC from Terasic
|
||||
-- Author : Sahand Kashani-Akhavan from Terasic documentation
|
||||
-- Revision : 1.3
|
||||
-- Creation date : 11/06/2015
|
||||
--
|
||||
-- Syntax Rule : GROUP_NAME_N[bit]
|
||||
--
|
||||
-- GROUP : specify a particular interface (ex: SDR_)
|
||||
-- NAME : signal name (ex: CONFIG, D, ...)
|
||||
-- bit : signal index
|
||||
-- _N : to specify an active-low signal
|
||||
-- #############################################################################
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
|
||||
entity DE0_Nano_SoC_TRDB_D5M_top_level is
|
||||
port(
|
||||
-- ADC
|
||||
ADC_CONVST : out std_logic;
|
||||
ADC_SCK : out std_logic;
|
||||
ADC_SDI : out std_logic;
|
||||
ADC_SDO : in std_logic;
|
||||
|
||||
-- ARDUINO
|
||||
ARDUINO_IO : inout std_logic_vector(15 downto 0);
|
||||
ARDUINO_RESET_N : inout std_logic;
|
||||
|
||||
-- CLOCK
|
||||
FPGA_CLK1_50 : in std_logic;
|
||||
FPGA_CLK2_50 : in std_logic;
|
||||
FPGA_CLK3_50 : in std_logic;
|
||||
|
||||
-- KEY
|
||||
KEY_N : in std_logic_vector(1 downto 0);
|
||||
|
||||
-- LED
|
||||
LED : out std_logic_vector(7 downto 0);
|
||||
|
||||
-- SW
|
||||
SW : in std_logic_vector(3 downto 0);
|
||||
|
||||
-- GPIO_0
|
||||
GPIO_0 : inout std_logic_vector(35 downto 0);
|
||||
|
||||
-- GPIO_1
|
||||
GPIO_1_D5M_D : in std_logic_vector(11 downto 0);
|
||||
GPIO_1_D5M_FVAL : in std_logic;
|
||||
GPIO_1_D5M_LVAL : in std_logic;
|
||||
GPIO_1_D5M_PIXCLK : in std_logic;
|
||||
GPIO_1_D5M_RESET_N : out std_logic;
|
||||
GPIO_1_D5M_SCLK : inout std_logic;
|
||||
GPIO_1_D5M_SDATA : inout std_logic;
|
||||
GPIO_1_D5M_STROBE : in std_logic;
|
||||
GPIO_1_D5M_TRIGGER : out std_logic;
|
||||
GPIO_1_D5M_XCLKIN : out std_logic;
|
||||
|
||||
-- HPS
|
||||
HPS_CONV_USB_N : inout std_logic;
|
||||
HPS_DDR3_ADDR : out std_logic_vector(14 downto 0);
|
||||
HPS_DDR3_BA : out std_logic_vector(2 downto 0);
|
||||
HPS_DDR3_CAS_N : out std_logic;
|
||||
HPS_DDR3_CK_N : out std_logic;
|
||||
HPS_DDR3_CK_P : out std_logic;
|
||||
HPS_DDR3_CKE : out std_logic;
|
||||
HPS_DDR3_CS_N : out std_logic;
|
||||
HPS_DDR3_DM : out std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQ : inout std_logic_vector(31 downto 0);
|
||||
HPS_DDR3_DQS_N : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQS_P : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_ODT : out std_logic;
|
||||
HPS_DDR3_RAS_N : out std_logic;
|
||||
HPS_DDR3_RESET_N : out std_logic;
|
||||
HPS_DDR3_RZQ : in std_logic;
|
||||
HPS_DDR3_WE_N : out std_logic;
|
||||
HPS_ENET_GTX_CLK : out std_logic;
|
||||
HPS_ENET_INT_N : inout std_logic;
|
||||
HPS_ENET_MDC : out std_logic;
|
||||
HPS_ENET_MDIO : inout std_logic;
|
||||
HPS_ENET_RX_CLK : in std_logic;
|
||||
HPS_ENET_RX_DATA : in std_logic_vector(3 downto 0);
|
||||
HPS_ENET_RX_DV : in std_logic;
|
||||
HPS_ENET_TX_DATA : out std_logic_vector(3 downto 0);
|
||||
HPS_ENET_TX_EN : out std_logic;
|
||||
HPS_GSENSOR_INT : inout std_logic;
|
||||
HPS_I2C0_SCLK : inout std_logic;
|
||||
HPS_I2C0_SDAT : inout std_logic;
|
||||
HPS_I2C1_SCLK : inout std_logic;
|
||||
HPS_I2C1_SDAT : inout std_logic;
|
||||
HPS_KEY_N : inout std_logic;
|
||||
HPS_LED : inout std_logic;
|
||||
HPS_LTC_GPIO : inout std_logic;
|
||||
HPS_SD_CLK : out std_logic;
|
||||
HPS_SD_CMD : inout std_logic;
|
||||
HPS_SD_DATA : inout std_logic_vector(3 downto 0);
|
||||
HPS_SPIM_CLK : out std_logic;
|
||||
HPS_SPIM_MISO : in std_logic;
|
||||
HPS_SPIM_MOSI : out std_logic;
|
||||
HPS_SPIM_SS : inout std_logic;
|
||||
HPS_UART_RX : in std_logic;
|
||||
HPS_UART_TX : out std_logic;
|
||||
HPS_USB_CLKOUT : in std_logic;
|
||||
HPS_USB_DATA : inout std_logic_vector(7 downto 0);
|
||||
HPS_USB_DIR : in std_logic;
|
||||
HPS_USB_NXT : in std_logic;
|
||||
HPS_USB_STP : out std_logic
|
||||
);
|
||||
end entity DE0_Nano_SoC_TRDB_D5M_top_level;
|
||||
|
||||
architecture rtl of DE0_Nano_SoC_TRDB_D5M_top_level is
|
||||
|
||||
begin
|
||||
|
||||
end;
|
123
cs473-es/lab3/hw/hdl/DE0_Nano_SoC_top_level.vhd
Normal file
123
cs473-es/lab3/hw/hdl/DE0_Nano_SoC_top_level.vhd
Normal file
@@ -0,0 +1,123 @@
|
||||
-- #############################################################################
|
||||
-- DE0_Nano_SoC_top_level.vhd
|
||||
--
|
||||
-- BOARD : DE0-Nano-SoC from Terasic
|
||||
-- Author : Sahand Kashani-Akhavan from Terasic documentation
|
||||
-- Revision : 1.1
|
||||
-- Creation date : 11/06/2015
|
||||
--
|
||||
-- Syntax Rule : GROUP_NAME_N[bit]
|
||||
--
|
||||
-- GROUP : specify a particular interface (ex: SDR_)
|
||||
-- NAME : signal name (ex: CONFIG, D, ...)
|
||||
-- bit : signal index
|
||||
-- _N : to specify an active-low signal
|
||||
-- #############################################################################
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
|
||||
entity DE0_Nano_SoC_top_level is
|
||||
port(
|
||||
-- ADC
|
||||
--ADC_CONVST : out std_logic;
|
||||
--ADC_SCK : out std_logic;
|
||||
--ADC_SDI : out std_logic;
|
||||
--ADC_SDO : in std_logic;
|
||||
|
||||
-- ARDUINO
|
||||
--ARDUINO_IO : inout std_logic_vector(15 downto 0);
|
||||
--ARDUINO_RESET_N : inout std_logic;
|
||||
|
||||
-- CLOCK
|
||||
FPGA_CLK1_50 : in std_logic;
|
||||
--FPGA_CLK2_50 : in std_logic;
|
||||
--FPGA_CLK3_50 : in std_logic;
|
||||
|
||||
-- KEY
|
||||
KEY_N : in std_logic_vector(1 downto 0);
|
||||
|
||||
-- LED
|
||||
--LED : out std_logic_vector(7 downto 0);
|
||||
|
||||
-- SW
|
||||
--SW : in std_logic_vector(3 downto 0);
|
||||
|
||||
-- GPIO_0
|
||||
GPIO_0 : inout std_logic_vector(35 downto 0)
|
||||
|
||||
-- GPIO_1
|
||||
--GPIO_1 : inout std_logic_vector(35 downto 0);
|
||||
|
||||
-- HPS
|
||||
--HPS_CONV_USB_N : inout std_logic;
|
||||
--HPS_DDR3_ADDR : out std_logic_vector(14 downto 0);
|
||||
--HPS_DDR3_BA : out std_logic_vector(2 downto 0);
|
||||
--HPS_DDR3_CAS_N : out std_logic;
|
||||
--HPS_DDR3_CK_N : out std_logic;
|
||||
--HPS_DDR3_CK_P : out std_logic;
|
||||
--HPS_DDR3_CKE : out std_logic;
|
||||
--HPS_DDR3_CS_N : out std_logic;
|
||||
--HPS_DDR3_DM : out std_logic_vector(3 downto 0);
|
||||
--HPS_DDR3_DQ : inout std_logic_vector(31 downto 0);
|
||||
--HPS_DDR3_DQS_N : inout std_logic_vector(3 downto 0);
|
||||
--HPS_DDR3_DQS_P : inout std_logic_vector(3 downto 0);
|
||||
--HPS_DDR3_ODT : out std_logic;
|
||||
--HPS_DDR3_RAS_N : out std_logic;
|
||||
--HPS_DDR3_RESET_N : out std_logic;
|
||||
--HPS_DDR3_RZQ : in std_logic;
|
||||
--HPS_DDR3_WE_N : out std_logic;
|
||||
--HPS_ENET_GTX_CLK : out std_logic;
|
||||
--HPS_ENET_INT_N : inout std_logic;
|
||||
--HPS_ENET_MDC : out std_logic;
|
||||
--HPS_ENET_MDIO : inout std_logic;
|
||||
--HPS_ENET_RX_CLK : in std_logic;
|
||||
--HPS_ENET_RX_DATA : in std_logic_vector(3 downto 0);
|
||||
--HPS_ENET_RX_DV : in std_logic;
|
||||
--HPS_ENET_TX_DATA : out std_logic_vector(3 downto 0);
|
||||
--HPS_ENET_TX_EN : out std_logic;
|
||||
--HPS_GSENSOR_INT : inout std_logic;
|
||||
--HPS_I2C0_SCLK : inout std_logic;
|
||||
--HPS_I2C0_SDAT : inout std_logic;
|
||||
--HPS_I2C1_SCLK : inout std_logic;
|
||||
--HPS_I2C1_SDAT : inout std_logic;
|
||||
--HPS_KEY_N : inout std_logic;
|
||||
--HPS_LED : inout std_logic;
|
||||
--HPS_LTC_GPIO : inout std_logic;
|
||||
--HPS_SD_CLK : out std_logic;
|
||||
--HPS_SD_CMD : inout std_logic;
|
||||
--HPS_SD_DATA : inout std_logic_vector(3 downto 0);
|
||||
--HPS_SPIM_CLK : out std_logic;
|
||||
--HPS_SPIM_MISO : in std_logic;
|
||||
--HPS_SPIM_MOSI : out std_logic;
|
||||
--HPS_SPIM_SS : inout std_logic;
|
||||
--HPS_UART_RX : in std_logic;
|
||||
--HPS_UART_TX : out std_logic;
|
||||
--HPS_USB_CLKOUT : in std_logic;
|
||||
--HPS_USB_DATA : inout std_logic_vector(7 downto 0);
|
||||
--HPS_USB_DIR : in std_logic;
|
||||
--HPS_USB_NXT : in std_logic;
|
||||
--HPS_USB_STP : out std_logic
|
||||
);
|
||||
end entity DE0_Nano_SoC_top_level;
|
||||
|
||||
architecture rtl of DE0_Nano_SoC_top_level is
|
||||
|
||||
component system is
|
||||
port (
|
||||
clk_clk : in std_logic := 'X'; -- clk
|
||||
reset_reset_n : in std_logic := 'X'; -- reset_n
|
||||
ws28xx_0_conduit_end_ws : out std_logic := 'X' -- export
|
||||
);
|
||||
end component system;
|
||||
|
||||
|
||||
|
||||
begin
|
||||
u0 : component system
|
||||
port map (
|
||||
clk_clk => FPGA_CLK1_50, -- clk.clk
|
||||
reset_reset_n => KEY_N(0), -- reset.reset_n
|
||||
ws28xx_0_conduit_end_ws => GPIO_0(0) -- ws28xx_0_conduit_end.export
|
||||
);
|
||||
end;
|
114
cs473-es/lab3/hw/hdl/DE0_Nano_Soc_7_segment_extension.vhd
Normal file
114
cs473-es/lab3/hw/hdl/DE0_Nano_Soc_7_segment_extension.vhd
Normal file
@@ -0,0 +1,114 @@
|
||||
-- #############################################################################
|
||||
-- DE0_Nano_Soc_7_segment_extension_board.vhd
|
||||
--
|
||||
-- BOARD : DE0-Nano-SoC from Terasic
|
||||
-- Author : Florian Depraz
|
||||
-- : Sahand Kashani-Akhavan from Terasic documentation
|
||||
-- Revision : 1.0
|
||||
-- Creation date : 27/10/2016
|
||||
--
|
||||
-- Syntax Rule : GROUP_NAME_N[bit]
|
||||
--
|
||||
-- GROUP : specify a particular interface (ex: SDR_)
|
||||
-- NAME : signal name (ex: CONFIG, D, ...)
|
||||
-- bit : signal index
|
||||
-- _N : to specify an active-low signal
|
||||
-- #############################################################################
|
||||
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
|
||||
entity DE0_Nano_Soc_7_segment_extension is
|
||||
port(
|
||||
-- ADC
|
||||
ADC_CONVST : out std_logic;
|
||||
ADC_SCK : out std_logic;
|
||||
ADC_SDI : out std_logic;
|
||||
ADC_SDO : in std_logic;
|
||||
|
||||
-- ARDUINO
|
||||
ARDUINO_IO : inout std_logic_vector(15 downto 0);
|
||||
ARDUINO_RESET_N : inout std_logic;
|
||||
|
||||
-- CLOCK
|
||||
FPGA_CLK1_50 : in std_logic;
|
||||
FPGA_CLK2_50 : in std_logic;
|
||||
FPGA_CLK3_50 : in std_logic;
|
||||
|
||||
-- KEY
|
||||
KEY_N : in std_logic_vector(1 downto 0);
|
||||
|
||||
-- LED
|
||||
LED : out std_logic_vector(7 downto 0);
|
||||
|
||||
-- SW
|
||||
SW : in std_logic_vector(3 downto 0);
|
||||
|
||||
-- GPIO_0
|
||||
GPIO_0 : inout std_logic_vector(35 downto 0);
|
||||
|
||||
-- Extension board 7 segments
|
||||
SelSeg : out std_logic_vector(7 downto 0);
|
||||
Reset_Led : out std_logic;
|
||||
nSelDig : out std_logic_vector(5 downto 0);
|
||||
SwLed : in std_logic_vector(7 downto 0);
|
||||
nButton : in std_logic_vector(3 downto 0)
|
||||
LedButton : out std_logic_vector(3 downto 0);
|
||||
|
||||
-- HPS
|
||||
HPS_CONV_USB_N : inout std_logic;
|
||||
HPS_DDR3_ADDR : out std_logic_vector(14 downto 0);
|
||||
HPS_DDR3_BA : out std_logic_vector(2 downto 0);
|
||||
HPS_DDR3_CAS_N : out std_logic;
|
||||
HPS_DDR3_CK_N : out std_logic;
|
||||
HPS_DDR3_CK_P : out std_logic;
|
||||
HPS_DDR3_CKE : out std_logic;
|
||||
HPS_DDR3_CS_N : out std_logic;
|
||||
HPS_DDR3_DM : out std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQ : inout std_logic_vector(31 downto 0);
|
||||
HPS_DDR3_DQS_N : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_DQS_P : inout std_logic_vector(3 downto 0);
|
||||
HPS_DDR3_ODT : out std_logic;
|
||||
HPS_DDR3_RAS_N : out std_logic;
|
||||
HPS_DDR3_RESET_N : out std_logic;
|
||||
HPS_DDR3_RZQ : in std_logic;
|
||||
HPS_DDR3_WE_N : out std_logic;
|
||||
HPS_ENET_GTX_CLK : out std_logic;
|
||||
HPS_ENET_INT_N : inout std_logic;
|
||||
HPS_ENET_MDC : out std_logic;
|
||||
HPS_ENET_MDIO : inout std_logic;
|
||||
HPS_ENET_RX_CLK : in std_logic;
|
||||
HPS_ENET_RX_DATA : in std_logic_vector(3 downto 0);
|
||||
HPS_ENET_RX_DV : in std_logic;
|
||||
HPS_ENET_TX_DATA : out std_logic_vector(3 downto 0);
|
||||
HPS_ENET_TX_EN : out std_logic;
|
||||
HPS_GSENSOR_INT : inout std_logic;
|
||||
HPS_I2C0_SCLK : inout std_logic;
|
||||
HPS_I2C0_SDAT : inout std_logic;
|
||||
HPS_I2C1_SCLK : inout std_logic;
|
||||
HPS_I2C1_SDAT : inout std_logic;
|
||||
HPS_KEY_N : inout std_logic;
|
||||
HPS_LED : inout std_logic;
|
||||
HPS_LTC_GPIO : inout std_logic;
|
||||
HPS_SD_CLK : out std_logic;
|
||||
HPS_SD_CMD : inout std_logic;
|
||||
HPS_SD_DATA : inout std_logic_vector(3 downto 0);
|
||||
HPS_SPIM_CLK : out std_logic;
|
||||
HPS_SPIM_MISO : in std_logic;
|
||||
HPS_SPIM_MOSI : out std_logic;
|
||||
HPS_SPIM_SS : inout std_logic;
|
||||
HPS_UART_RX : in std_logic;
|
||||
HPS_UART_TX : out std_logic;
|
||||
HPS_USB_CLKOUT : in std_logic;
|
||||
HPS_USB_DATA : inout std_logic_vector(7 downto 0);
|
||||
HPS_USB_DIR : in std_logic;
|
||||
HPS_USB_NXT : in std_logic;
|
||||
HPS_USB_STP : out std_logic
|
||||
);
|
||||
end entity DE0_Nano_Soc_7_segment_extension;
|
||||
|
||||
architecture rtl of DE0_Nano_Soc_7_segment_extension is
|
||||
begin
|
||||
|
||||
|
||||
end;
|
43
cs473-es/lab3/hw/hdl/LCDController/ClkGen.vhd
Normal file
43
cs473-es/lab3/hw/hdl/LCDController/ClkGen.vhd
Normal file
@@ -0,0 +1,43 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
entity ClkGen is
|
||||
generic (
|
||||
F_CLK : natural; -- Hz
|
||||
F_OUT : natural; -- Hz
|
||||
F_MIN : natural; -- Hz
|
||||
F_MAX : natural -- Hz
|
||||
);
|
||||
port (
|
||||
clk : in std_logic;
|
||||
rst_n : in std_logic;
|
||||
clk_o : out std_logic;
|
||||
en : in std_logic
|
||||
);
|
||||
end ClkGen;
|
||||
|
||||
architecture Behavioral of ClkGen is
|
||||
constant CNT_MAX : integer := integer(floor(real(F_CLK) / real(F_OUT))) - 1;
|
||||
constant F_ACTUAL : integer := (F_CLK/natural(CNT_MAX+1));
|
||||
signal counter_reg, counter_next: integer range CNT_MAX downto 0;
|
||||
begin
|
||||
assert F_MIN <= F_ACTUAL report "Invalid Timings for ClkGen ("&integer'image(F_ACTUAL)&"hz < "&integer'image(F_MIN)&"hz)" severity error;
|
||||
assert F_MAX >= F_ACTUAL report "Invalid Timings for ClkGen ("&integer'image(F_ACTUAL)&"hz > "&integer'image(F_MAX)&"hz)" severity error;
|
||||
assert F_MIN <= F_OUT and F_OUT <= F_MAX report "Invalid Timings for ClkGen (F_MIN<=F_OUT<=F_MAX)." severity error;
|
||||
|
||||
counter_next <= CNT_MAX when counter_reg = 0 else counter_reg - 1;
|
||||
process(clk, rst_n) begin
|
||||
if rising_edge(clk) then
|
||||
if rst_n = '0' then
|
||||
counter_reg <= CNT_MAX;
|
||||
else
|
||||
if en = '1' then
|
||||
counter_reg <= counter_next;
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
end process;
|
||||
clk_o <= '1' when counter_reg = 0 and en = '1' else '0';
|
||||
end Behavioral; -- Behavioral
|
136
cs473-es/lab3/hw/hdl/LCDController/LCDAvalonMaster.vhd
Normal file
136
cs473-es/lab3/hw/hdl/LCDController/LCDAvalonMaster.vhd
Normal file
@@ -0,0 +1,136 @@
|
||||
-- altera vhdl_input_version vhdl_2008
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
|
||||
entity LCDAvalonMaster is
|
||||
generic (
|
||||
NWORDS_MAX : natural
|
||||
);
|
||||
port (
|
||||
clk : in std_logic;
|
||||
rst_n : in std_logic;
|
||||
waitreq : in std_logic;
|
||||
readdata : in std_logic_vector(31 downto 0);
|
||||
readdatavalid : in std_logic;
|
||||
address : out std_logic_vector(31 downto 0);
|
||||
burstcount : out std_logic_vector(4 downto 0);
|
||||
am_read : out std_logic;
|
||||
refresh : in std_logic;
|
||||
fifo_almost_empty : in std_logic;
|
||||
fifo_data : out std_logic_vector(31 downto 0);
|
||||
fifo_wr_req : out std_logic;
|
||||
baseaddress : in std_logic_vector(31 downto 0);
|
||||
nwords : in std_logic_vector(integer(ceil(log2(real(NWORDS_MAX)))) downto 0)
|
||||
);
|
||||
end LCDAvalonMaster;
|
||||
|
||||
architecture behavioral of LCDAvalonMaster is
|
||||
-- Generic constants
|
||||
constant BURST_COUNT : integer := 16;
|
||||
constant BURST_COUNT_SLV : std_logic_vector(burstcount'left downto 0) := std_logic_vector(to_unsigned(BURST_COUNT, burstcount'length));
|
||||
|
||||
|
||||
-- Type definitions
|
||||
type State is (S_READY, S_BURSTREQ, S_BURSTRD, S_FIFOWAIT);
|
||||
subtype BurstCounter is integer range 0 to BURST_COUNT;
|
||||
subtype WordCounter is integer range 0 to NWORDS_MAX;
|
||||
|
||||
|
||||
-- Inferred registers
|
||||
signal rdaddr_reg, rdaddr_next : std_logic_vector(31 downto 0);
|
||||
signal state_reg, state_next : State;
|
||||
signal burstcnt_reg, burstcnt_next : BurstCounter; -- Counts # of words read during a single burst
|
||||
signal wordcnt_reg, wordcnt_next : WordCounter; -- Counts # of words read during a refresh cycle
|
||||
|
||||
|
||||
begin
|
||||
-- PROCESS state machine
|
||||
process(all) begin
|
||||
state_next <= state_reg;
|
||||
rdaddr_next <= rdaddr_reg;
|
||||
burstcnt_next <= burstcnt_reg;
|
||||
wordcnt_next <= wordcnt_reg;
|
||||
|
||||
-- Avalon master default output signals
|
||||
burstcount <= BURST_COUNT_SLV;
|
||||
am_read <= '0';
|
||||
|
||||
case state_reg is
|
||||
when S_READY =>
|
||||
-- ====================== AM STATE: READY ======================
|
||||
if refresh = '1' then
|
||||
wordcnt_next <= integer(to_integer(unsigned(nwords)));
|
||||
state_next <= S_BURSTREQ;
|
||||
end if;
|
||||
when S_BURSTREQ =>
|
||||
-- ================== AM STATE: BURST REQUEST ==================
|
||||
am_read <= '1';
|
||||
if waitreq = '0' then
|
||||
-- Burst was accepted,
|
||||
state_next <= S_BURSTRD;
|
||||
|
||||
-- Calculate the # of words we plan to read during this burst
|
||||
-- and update counters accordingly.
|
||||
if wordcnt_reg < BURST_COUNT then
|
||||
burstcnt_next <= wordcnt_reg;
|
||||
wordcnt_next <= 0;
|
||||
else
|
||||
burstcnt_next <= BURST_COUNT;
|
||||
wordcnt_next <= wordcnt_reg - BURST_COUNT;
|
||||
end if;
|
||||
end if;
|
||||
when S_BURSTRD =>
|
||||
-- ==================== AM STATE: BURST READ ===================
|
||||
if readdatavalid = '1' then
|
||||
if burstcnt_reg = 1 then
|
||||
-- Got last word, burst read finished
|
||||
if wordcnt_reg = 0 then
|
||||
-- All nwords read
|
||||
state_next <= S_READY;
|
||||
else
|
||||
-- < nwords read
|
||||
state_next <= S_FIFOWAIT;
|
||||
end if;
|
||||
else
|
||||
burstcnt_next <= burstcnt_reg - 1;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
when S_FIFOWAIT =>
|
||||
-- ==================== AM STATE: FIFO WAIT ====================
|
||||
-- Await the assertion of fifo_almost_empty until reinitiating a
|
||||
-- burst read
|
||||
if fifo_almost_empty = '1' then
|
||||
state_next <= S_BURSTREQ;
|
||||
end if;
|
||||
end case;
|
||||
end process;
|
||||
|
||||
|
||||
-- FIFO data transfer routing
|
||||
fifo_wr_req <= '1' when state_reg = S_BURSTRD and readdatavalid = '1' else '0';
|
||||
fifo_data <= readdata when state_reg = S_BURSTRD else (others => 'Z');
|
||||
address <= std_logic_vector(unsigned(baseaddress) + resize((unsigned(nwords) - wordcnt_reg) * 4, address'length)) when state_reg = S_BURSTREQ else (others => 'Z');
|
||||
|
||||
-- Clocking process/register inferrence
|
||||
process(clk) begin
|
||||
if rising_edge(clk) then
|
||||
if rst_n = '0' then
|
||||
rdaddr_reg <= (others => '0');
|
||||
state_reg <= S_READY;
|
||||
burstcnt_reg <= BURST_COUNT;
|
||||
wordcnt_reg <= 0;
|
||||
else
|
||||
rdaddr_reg <= rdaddr_next;
|
||||
state_reg <= state_next;
|
||||
burstcnt_reg <= burstcnt_next;
|
||||
wordcnt_reg <= wordcnt_next;
|
||||
end if;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
|
||||
end behavioral;
|
108
cs473-es/lab3/hw/hdl/LCDController/LCDAvalonMaster_tb.vhd
Normal file
108
cs473-es/lab3/hw/hdl/LCDController/LCDAvalonMaster_tb.vhd
Normal file
@@ -0,0 +1,108 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
|
||||
entity LCDAvalonMaster_tb is
|
||||
end LCDAvalonMaster_tb;
|
||||
|
||||
architecture test of LCDAvalonMaster_tb is
|
||||
constant CLK_PERIOD : time := 20 ns;
|
||||
constant N_LED_MAX : integer := 255;
|
||||
|
||||
-- 20 = 1 full burst + 1 non full burst
|
||||
constant NWORDS : natural := 20;
|
||||
|
||||
constant NWORDS_MAX :natural := (320*240)/2;
|
||||
|
||||
signal clk : std_logic := '0';
|
||||
signal rst_n : std_logic;
|
||||
signal waitreq, readdatavalid, refresh, fifo_almost_empty : std_logic;
|
||||
signal readdata : std_logic_vector(31 downto 0);
|
||||
signal baseaddress : std_logic_vector(31 downto 0);
|
||||
signal nwords_sig : std_logic_vector(integer(floor(log2(real(NWORDS_MAX)))) downto 0);
|
||||
|
||||
begin
|
||||
|
||||
nwords_sig <= std_logic_vector(to_unsigned(NWORDS, nwords_sig'length));
|
||||
|
||||
-- Instantiate DUT
|
||||
dut : entity work.LCDAvalonMaster
|
||||
generic map (
|
||||
NWORDS_MAX => NWORDS_MAX
|
||||
)
|
||||
port map(
|
||||
clk => clk,
|
||||
rst_n => rst_n,
|
||||
waitreq => waitreq,
|
||||
readdatavalid => readdatavalid,
|
||||
refresh => refresh,
|
||||
fifo_almost_empty => fifo_almost_empty,
|
||||
readdata => readdata,
|
||||
baseaddress => baseaddress,
|
||||
nwords => nwords_sig
|
||||
);
|
||||
|
||||
-- Clocking process
|
||||
clk_generation : process
|
||||
begin
|
||||
clk <= not clk;
|
||||
wait for CLK_PERIOD / 2;
|
||||
end process;
|
||||
|
||||
-- Testbench
|
||||
tb : process
|
||||
begin
|
||||
while true loop
|
||||
-- Dummy signals from bus
|
||||
readdata <= X"12341234";
|
||||
readdatavalid <= '0';
|
||||
waitreq <= '1';
|
||||
baseaddress <= X"10000000";
|
||||
fifo_almost_empty <= '0';
|
||||
|
||||
-- Reset
|
||||
rst_n <= '0';
|
||||
wait for CLK_PERIOD * 2.5;
|
||||
rst_n <= '1';
|
||||
wait for CLK_PERIOD * 2;
|
||||
|
||||
-- Initiate a refresh cycle
|
||||
wait until rising_edge(clk);
|
||||
refresh <= '1';
|
||||
wait for CLK_PERIOD;
|
||||
refresh <= '0';
|
||||
|
||||
-- Wait until bus grant
|
||||
wait for CLK_PERIOD * 3;
|
||||
waitreq <= '0';
|
||||
wait for CLK_PERIOD;
|
||||
|
||||
-- Emulate that new read data is valid each cycle of the burst
|
||||
readdatavalid <= '1';
|
||||
for i in 1 to 16 loop
|
||||
wait for CLK_PERIOD;
|
||||
end loop;
|
||||
readdatavalid <= '0';
|
||||
|
||||
wait for CLK_PERIOD * 5;
|
||||
|
||||
-- Assert fifo_almost empty; should repromt another transfer
|
||||
fifo_almost_empty <= '1';
|
||||
wait for CLK_period;
|
||||
fifo_almost_empty <= '0';
|
||||
wait for CLK_PERIOD * 2;
|
||||
|
||||
readdatavalid <= '1';
|
||||
for i in 1 to 16 loop
|
||||
wait for CLK_PERIOD;
|
||||
end loop;
|
||||
|
||||
-- Test finished
|
||||
wait for CLK_PERIOD * 5;
|
||||
end loop;
|
||||
|
||||
end process;
|
||||
|
||||
end;
|
370
cs473-es/lab3/hw/hdl/LCDController/LCDController.vhd
Normal file
370
cs473-es/lab3/hw/hdl/LCDController/LCDController.vhd
Normal file
@@ -0,0 +1,370 @@
|
||||
-- altera vhdl_input_version vhdl_2008
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
LIBRARY altera_mf;
|
||||
use altera_mf.altera_mf_components.all;
|
||||
|
||||
entity LCDController is
|
||||
port(
|
||||
clk : in std_logic;
|
||||
rst_n : in std_logic;
|
||||
|
||||
-- Avalon slave interface
|
||||
avalon_slave_address : in std_logic_vector (3 downto 0);
|
||||
avalon_slave_write : in std_logic;
|
||||
avalon_slave_writedata : in std_logic_vector(31 downto 0);
|
||||
avalon_slave_read : in std_logic;
|
||||
avalon_slave_readdata : out std_logic_vector(31 downto 0);
|
||||
avalon_slave_waitrequest : out std_logic;
|
||||
av_irq : out std_logic;
|
||||
|
||||
-- Avalon master interface
|
||||
avalon_master_waitreq : in std_logic;
|
||||
avalon_master_readdata : in std_logic_vector(31 downto 0);
|
||||
avalon_master_readdatavalid : in std_logic;
|
||||
avalon_master_address : out std_logic_vector(31 downto 0);
|
||||
avalon_master_burstcount : out std_logic_vector(4 downto 0);
|
||||
avalon_master_read : out std_logic;
|
||||
|
||||
-- LT24 conduit interface
|
||||
lt24_rd_n : out std_logic;
|
||||
lt24_wr_n : out std_logic;
|
||||
lt24_rs : out std_logic;
|
||||
lt24_cs_n : out std_logic;
|
||||
lt24_data : out std_logic_vector(15 downto 0);
|
||||
lt24_reset_n : out std_logic;
|
||||
lt24_lcd_on : out std_logic
|
||||
);
|
||||
end LCDController;
|
||||
|
||||
|
||||
architecture comp of LCDController is
|
||||
-- Type definitions
|
||||
type State is (S_READY, S_REFRESHING);
|
||||
|
||||
type IRQ_CTRL is record
|
||||
enabled : boolean;
|
||||
clear_on_refresh : boolean;
|
||||
irq0_active : std_logic;
|
||||
end record IRQ_CTRL;
|
||||
|
||||
-- Generic constants
|
||||
constant F_CLK : natural := 50*10**6;
|
||||
constant ZERO_ADDR : std_logic_vector(31 downto 0) := (others => '0');
|
||||
constant MAX_H : natural := 240;
|
||||
constant MAX_W : natural := 320;
|
||||
constant N_PIXELS : natural := MAX_H * MAX_W;
|
||||
constant PIXEL_WIDTH : natural := 16;
|
||||
constant AVM_BURST_LEN : natural := 256;
|
||||
constant IRQ_CTRL_DEFAULT : IRQ_CTRL := (
|
||||
enabled => true,
|
||||
clear_on_refresh => true,
|
||||
irq0_active => '0'
|
||||
);
|
||||
|
||||
-- Avalon slave programmable interface constants
|
||||
constant A_WRITEREG : natural := 0;
|
||||
constant A_WRITEDATA : natural := 1;
|
||||
constant A_WRITEBASE : natural := 2;
|
||||
constant A_REFRESH : natural := 3;
|
||||
constant A_SETENABLED : natural := 4;
|
||||
constant A_SETHEIGHT : natural := 5;
|
||||
constant A_SETWIDTH : natural := 6;
|
||||
constant A_WRITEIRQ : natural := 7;
|
||||
constant A_SETIRQ : natural := 8;
|
||||
constant A_CLEARIRQ : natural := 9;
|
||||
constant A_ISBUSY : natural := 10;
|
||||
constant LAST_avalon_slave_ADDR : natural := A_ISBUSY;
|
||||
signal avalon_slave_address_int : integer range 0 to LAST_avalon_slave_ADDR;
|
||||
|
||||
-- FIFO configuration parameters
|
||||
constant FIFO_N_ALMOST_EMPTY : natural := 32;
|
||||
constant FIFO_WIDTH : natural := 32;
|
||||
constant FIFO_SIZE : natural := AVM_BURST_LEN + FIFO_N_ALMOST_EMPTY;
|
||||
constant PIXELS_PER_WORD : natural := FIFO_WIDTH / PIXEL_WIDTH;
|
||||
constant NWORDS_MAX : natural := N_PIXELS / PIXELS_PER_WORD;
|
||||
|
||||
-- FIFO signals
|
||||
signal fifo_almost_empty : std_logic;
|
||||
signal fifo_wr_req : std_logic;
|
||||
signal fifo_data_in, fifo_data_out : std_logic_vector(FIFO_WIDTH - 1 downto 0);
|
||||
signal fifo_rd_req : std_logic;
|
||||
signal fifo_empty : std_logic;
|
||||
|
||||
|
||||
-- Inferred registers
|
||||
signal baseaddr_reg, baseaddr_next : std_logic_vector(31 downto 0);
|
||||
signal state_reg, state_next : State;
|
||||
signal lcd_on_reg, lcd_on_next : std_logic := '1';
|
||||
signal lcd_rst_reg, lcd_rst_next : std_logic := '0';
|
||||
signal width_reg, width_next : integer range 0 to MAX_W;
|
||||
signal height_reg, height_next : integer range 0 to MAX_H;
|
||||
signal irq_ctrl_reg, irq_ctrl_next : IRQ_CTRL;
|
||||
|
||||
-- LCD Driver interfacing signals
|
||||
signal lcd_cmd_en : std_logic;
|
||||
signal lcd_cmd_dcx : std_logic;
|
||||
signal lcd_cmd_data : std_logic_vector(7 downto 0);
|
||||
signal lcd_busy : std_logic;
|
||||
signal lcd_req : std_logic;
|
||||
signal lcd_data : std_logic_vector(15 downto 0);
|
||||
signal lcd_empty : std_logic;
|
||||
|
||||
-- LCDController state signals
|
||||
signal refresh : std_logic;
|
||||
|
||||
-- # of words required by the fifo to gather all pixels in an image based on
|
||||
-- current width and height values
|
||||
signal av_nwords : std_logic_vector(integer(ceil(log2(real(NWORDS_MAX)))) downto 0);
|
||||
|
||||
|
||||
function writeIRQCtrl(v : in std_logic_vector(2 downto 0)) return IRQ_CTRL is
|
||||
variable res : IRQ_CTRL;
|
||||
begin
|
||||
res.enabled := v(0) = '1';
|
||||
res.clear_on_refresh := v(1) = '1';
|
||||
res.irq0_active := v(2);
|
||||
return res;
|
||||
end writeIRQCtrl;
|
||||
|
||||
function setIRQCtrl(current: in IRQ_CTRL; v : in std_logic_vector(2 downto 0)) return IRQ_CTRL is
|
||||
variable res : IRQ_CTRL;
|
||||
begin
|
||||
res := current;
|
||||
res.enabled := current.enabled or v(0) = '1';
|
||||
res.clear_on_refresh := current.clear_on_refresh or v(1) = '1';
|
||||
res.irq0_active := current.irq0_active or v(2);
|
||||
return res;
|
||||
end setIRQCtrl;
|
||||
|
||||
function clearIRQCtrl(current: in IRQ_CTRL; v : in std_logic_vector(2 downto 0)) return IRQ_CTRL is
|
||||
variable res : IRQ_CTRL;
|
||||
begin
|
||||
res := current;
|
||||
res.enabled := current.enabled and not v(0) = '1';
|
||||
res.clear_on_refresh := current.clear_on_refresh and not v(1) = '1';
|
||||
res.irq0_active := current.irq0_active and not v(2);
|
||||
return res;
|
||||
end clearIRQCtrl;
|
||||
|
||||
--Component declaration, required for altera library IP
|
||||
component scfifo
|
||||
generic (
|
||||
almost_empty_value : natural;
|
||||
lpm_numwords : natural;
|
||||
lpm_width : natural;
|
||||
lpm_widthu : natural
|
||||
);
|
||||
port(
|
||||
aclr : in std_logic;
|
||||
almost_empty : out std_logic;
|
||||
clock : in std_logic;
|
||||
data : in std_logic_vector(lpm_width-1 downto 0);
|
||||
empty : out std_logic;
|
||||
q : out std_logic_vector(lpm_width-1 downto 0);
|
||||
rdreq : in std_logic;
|
||||
sclr : in std_logic;
|
||||
wrreq : in std_logic
|
||||
);
|
||||
end component;
|
||||
|
||||
begin
|
||||
|
||||
|
||||
-- ENTITY LCDDriver:
|
||||
lcddriver_ent : entity work.LCDDriver
|
||||
generic map (
|
||||
F_CLK => F_CLK
|
||||
)
|
||||
port map (
|
||||
clk => clk,
|
||||
rst_n => rst_n,
|
||||
data_in => lcd_data,
|
||||
empty_in => lcd_empty,
|
||||
refresh_in => refresh,
|
||||
cmd_en_in => lcd_cmd_en,
|
||||
cmd_dcx_in => lcd_cmd_dcx,
|
||||
cmd_data_in => lcd_cmd_data,
|
||||
|
||||
data_out => lt24_data,
|
||||
rd_n => lt24_rd_n,
|
||||
wr_n => lt24_wr_n,
|
||||
rs => lt24_rs,
|
||||
cs_n => lt24_cs_n,
|
||||
|
||||
lcd_rdreq => lcd_req,
|
||||
busy => lcd_busy
|
||||
);
|
||||
|
||||
-- ENTITY PixTrans:
|
||||
pixtrans_ent : entity work.PixTrans
|
||||
generic map (
|
||||
MAX_H => MAX_H,
|
||||
MAX_W => MAX_W
|
||||
)
|
||||
port map (
|
||||
clk => clk,
|
||||
rst_n => rst_n,
|
||||
lcd_req => lcd_req,
|
||||
data => lcd_data,
|
||||
empty => lcd_empty,
|
||||
fifo_req => fifo_rd_req,
|
||||
fifo_q => fifo_data_out,
|
||||
fifo_empty => fifo_empty,
|
||||
w => width_reg,
|
||||
h => height_reg
|
||||
);
|
||||
|
||||
-- ENTITY Avalon master:
|
||||
avalon_master_ent : entity work.LCDAvalonMaster
|
||||
generic map (
|
||||
NWORDS_MAX => NWORDS_MAX
|
||||
)
|
||||
port map (
|
||||
clk => clk,
|
||||
rst_n => rst_n,
|
||||
waitreq => avalon_master_waitreq,
|
||||
readdata => avalon_master_readdata,
|
||||
readdatavalid => avalon_master_readdatavalid,
|
||||
address => avalon_master_address,
|
||||
burstcount => avalon_master_burstcount,
|
||||
am_read => avalon_master_read,
|
||||
refresh => refresh,
|
||||
fifo_almost_empty => fifo_almost_empty,
|
||||
fifo_data => fifo_data_in,
|
||||
fifo_wr_req => fifo_wr_req,
|
||||
baseaddress => baseaddr_reg,
|
||||
nwords => av_nwords
|
||||
);
|
||||
|
||||
-- ENTITY FIFO
|
||||
fifo_ent : scfifo
|
||||
generic map (
|
||||
lpm_widthu => 9,
|
||||
lpm_width => FIFO_WIDTH,
|
||||
lpm_numwords => FIFO_SIZE,
|
||||
almost_empty_value => FIFO_N_ALMOST_EMPTY
|
||||
)
|
||||
port map (
|
||||
clock => clk,
|
||||
data => fifo_data_in,
|
||||
q => fifo_data_out,
|
||||
wrreq => fifo_wr_req,
|
||||
rdreq => fifo_rd_req,
|
||||
empty => fifo_empty,
|
||||
almost_empty => fifo_almost_empty,
|
||||
sclr => not rst_n,
|
||||
aclr => '0'
|
||||
);
|
||||
|
||||
|
||||
-- PROCESS Avalon slave interface
|
||||
avalon_slave_address_int <= to_integer(unsigned(avalon_slave_address));
|
||||
process(all) begin
|
||||
state_next <= state_reg;
|
||||
height_next <= height_reg;
|
||||
width_next <= width_reg;
|
||||
irq_ctrl_next <= irq_ctrl_reg;
|
||||
refresh <= '0';
|
||||
|
||||
lcd_cmd_en <= '0';
|
||||
lcd_cmd_dcx <= '0';
|
||||
baseaddr_next <= baseaddr_reg;
|
||||
lcd_on_next <= lcd_on_reg;
|
||||
lcd_rst_next <= lcd_rst_reg;
|
||||
|
||||
avalon_slave_readdata <= (others => 'Z');
|
||||
|
||||
-- Avalon slave interface
|
||||
if avalon_slave_write = '1' then
|
||||
case avalon_slave_address_int is
|
||||
when A_WRITEREG =>
|
||||
lcd_cmd_en <= '1';
|
||||
lcd_cmd_dcx <= '0';
|
||||
when A_WRITEDATA =>
|
||||
lcd_cmd_en <= '1';
|
||||
lcd_cmd_dcx <= '1';
|
||||
when A_WRITEBASE =>
|
||||
baseaddr_next <= avalon_slave_writedata;
|
||||
when A_REFRESH =>
|
||||
if state_reg = S_READY then
|
||||
refresh <= '1';
|
||||
state_next <= S_REFRESHING;
|
||||
if irq_ctrl_reg.clear_on_refresh then
|
||||
irq_ctrl_next.irq0_active <= '0';
|
||||
end if;
|
||||
end if;
|
||||
when A_SETENABLED =>
|
||||
lcd_on_next <= avalon_slave_writedata(0);
|
||||
lcd_rst_next <= avalon_slave_writedata(1);
|
||||
when A_SETHEIGHT =>
|
||||
height_next <= to_integer(unsigned(avalon_slave_writedata));
|
||||
when A_SETWIDTH =>
|
||||
width_next <= to_integer(unsigned(avalon_slave_writedata));
|
||||
when A_WRITEIRQ =>
|
||||
irq_ctrl_next <= writeIRQCtrl(avalon_slave_writedata(2 downto 0));
|
||||
when A_SETIRQ =>
|
||||
irq_ctrl_next <= setIRQCtrl(irq_ctrl_reg, avalon_slave_writedata(2 downto 0));
|
||||
when A_CLEARIRQ =>
|
||||
irq_ctrl_next <= clearIRQCtrl(irq_ctrl_reg, avalon_slave_writedata(2 downto 0));
|
||||
when others => null;
|
||||
end case;
|
||||
end if;
|
||||
|
||||
if avalon_slave_read = '1' then
|
||||
case avalon_slave_address_int is
|
||||
when A_ISBUSY =>
|
||||
avalon_slave_readdata <= (avalon_slave_readdata'left downto 1 => '0') & lcd_busy;
|
||||
when others =>
|
||||
null;
|
||||
end case;
|
||||
end if;
|
||||
|
||||
-- LCD Controller state handling
|
||||
if (state_reg = S_REFRESHING) and lcd_busy = '0' then
|
||||
state_next <= S_READY;
|
||||
if irq_ctrl_reg.enabled then
|
||||
irq_ctrl_next.irq0_active <= '1'; -- register that we are now finished
|
||||
end if;
|
||||
end if;
|
||||
|
||||
|
||||
end process;
|
||||
|
||||
av_irq <= irq_ctrl_reg.irq0_active;
|
||||
|
||||
-- LCDController top level signals and functional units
|
||||
lcd_cmd_data <= avalon_slave_writedata(7 downto 0);
|
||||
av_nwords <= std_logic_vector(to_unsigned((height_reg * width_reg) / 2, av_nwords'length));
|
||||
|
||||
-- Output logic
|
||||
lt24_reset_n <= not lcd_rst_reg;
|
||||
lt24_lcd_on <= lcd_on_reg;
|
||||
avalon_slave_waitrequest <= '1' when (lcd_busy='1' or state_reg /= S_READY) else '0';
|
||||
|
||||
-- Clocking process/register inferrence
|
||||
process(clk) begin
|
||||
if rising_edge(clk) then
|
||||
if rst_n = '0' then
|
||||
baseaddr_reg <= (others => '0');
|
||||
state_reg <= S_READY;
|
||||
height_reg <= MAX_H;
|
||||
width_reg <= MAX_W;
|
||||
irq_ctrl_reg <= IRQ_CTRL_DEFAULT;
|
||||
lcd_on_reg <= '1';
|
||||
else
|
||||
state_reg <= state_next;
|
||||
baseaddr_reg <= baseaddr_next;
|
||||
height_reg <= height_next;
|
||||
width_reg <= width_next;
|
||||
irq_ctrl_reg <= irq_ctrl_next;
|
||||
lcd_on_reg <= lcd_on_next;
|
||||
lcd_rst_reg <= lcd_rst_next;
|
||||
end if;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
end comp;
|
199
cs473-es/lab3/hw/hdl/LCDController/LCDController_hw.tcl
Normal file
199
cs473-es/lab3/hw/hdl/LCDController/LCDController_hw.tcl
Normal file
@@ -0,0 +1,199 @@
|
||||
# TCL File Generated by Component Editor 18.1
|
||||
# Wed Jan 06 17:21:08 CET 2021
|
||||
# DO NOT MODIFY
|
||||
|
||||
|
||||
#
|
||||
# LCDController "LCDController" v1.0
|
||||
# 2021.01.06.17:21:08
|
||||
#
|
||||
#
|
||||
|
||||
#
|
||||
# request TCL package from ACDS 16.1
|
||||
#
|
||||
package require -exact qsys 16.1
|
||||
|
||||
|
||||
#
|
||||
# module LCDController
|
||||
#
|
||||
set_module_property DESCRIPTION ""
|
||||
set_module_property NAME LCDController
|
||||
set_module_property VERSION 1.0
|
||||
set_module_property INTERNAL false
|
||||
set_module_property OPAQUE_ADDRESS_MAP true
|
||||
set_module_property AUTHOR ""
|
||||
set_module_property DISPLAY_NAME LCDController
|
||||
set_module_property INSTANTIATE_IN_SYSTEM_MODULE true
|
||||
set_module_property EDITABLE true
|
||||
set_module_property REPORT_TO_TALKBACK false
|
||||
set_module_property ALLOW_GREYBOX_GENERATION false
|
||||
set_module_property REPORT_HIERARCHY false
|
||||
|
||||
|
||||
#
|
||||
# file sets
|
||||
#
|
||||
add_fileset QUARTUS_SYNTH QUARTUS_SYNTH "" ""
|
||||
set_fileset_property QUARTUS_SYNTH TOP_LEVEL LCDController
|
||||
set_fileset_property QUARTUS_SYNTH ENABLE_RELATIVE_INCLUDE_PATHS false
|
||||
set_fileset_property QUARTUS_SYNTH ENABLE_FILE_OVERWRITE_MODE false
|
||||
add_fileset_file LCDController.vhd VHDL PATH LCDController.vhd TOP_LEVEL_FILE
|
||||
add_fileset_file ClkGen.vhd VHDL PATH ClkGen.vhd
|
||||
add_fileset_file LCDAvalonMaster.vhd VHDL PATH LCDAvalonMaster.vhd
|
||||
add_fileset_file LCDDriver.vhd VHDL PATH LCDDriver.vhd
|
||||
add_fileset_file PixTrans.vhd VHDL PATH PixTrans.vhd
|
||||
|
||||
|
||||
#
|
||||
# parameters
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# display items
|
||||
#
|
||||
|
||||
|
||||
#
|
||||
# connection point avalon_slave
|
||||
#
|
||||
add_interface avalon_slave avalon end
|
||||
set_interface_property avalon_slave addressUnits WORDS
|
||||
set_interface_property avalon_slave associatedClock clock_sink
|
||||
set_interface_property avalon_slave associatedReset reset_sink
|
||||
set_interface_property avalon_slave bitsPerSymbol 8
|
||||
set_interface_property avalon_slave burstOnBurstBoundariesOnly false
|
||||
set_interface_property avalon_slave burstcountUnits WORDS
|
||||
set_interface_property avalon_slave explicitAddressSpan 0
|
||||
set_interface_property avalon_slave holdTime 0
|
||||
set_interface_property avalon_slave linewrapBursts false
|
||||
set_interface_property avalon_slave maximumPendingReadTransactions 0
|
||||
set_interface_property avalon_slave maximumPendingWriteTransactions 0
|
||||
set_interface_property avalon_slave readLatency 0
|
||||
set_interface_property avalon_slave readWaitStates 0
|
||||
set_interface_property avalon_slave readWaitTime 0
|
||||
set_interface_property avalon_slave setupTime 0
|
||||
set_interface_property avalon_slave timingUnits Cycles
|
||||
set_interface_property avalon_slave writeWaitTime 0
|
||||
set_interface_property avalon_slave ENABLED true
|
||||
set_interface_property avalon_slave EXPORT_OF ""
|
||||
set_interface_property avalon_slave PORT_NAME_MAP ""
|
||||
set_interface_property avalon_slave CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property avalon_slave SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port avalon_slave avalon_slave_address address Input 4
|
||||
add_interface_port avalon_slave avalon_slave_write write Input 1
|
||||
add_interface_port avalon_slave avalon_slave_writedata writedata Input 32
|
||||
add_interface_port avalon_slave avalon_slave_read read Input 1
|
||||
add_interface_port avalon_slave avalon_slave_readdata readdata Output 32
|
||||
add_interface_port avalon_slave avalon_slave_waitrequest waitrequest Output 1
|
||||
set_interface_assignment avalon_slave embeddedsw.configuration.isFlash 0
|
||||
set_interface_assignment avalon_slave embeddedsw.configuration.isMemoryDevice 0
|
||||
set_interface_assignment avalon_slave embeddedsw.configuration.isNonVolatileStorage 0
|
||||
set_interface_assignment avalon_slave embeddedsw.configuration.isPrintableDevice 0
|
||||
|
||||
|
||||
#
|
||||
# connection point clock_sink
|
||||
#
|
||||
add_interface clock_sink clock end
|
||||
set_interface_property clock_sink clockRate 0
|
||||
set_interface_property clock_sink ENABLED true
|
||||
set_interface_property clock_sink EXPORT_OF ""
|
||||
set_interface_property clock_sink PORT_NAME_MAP ""
|
||||
set_interface_property clock_sink CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property clock_sink SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port clock_sink clk clk Input 1
|
||||
|
||||
|
||||
#
|
||||
# connection point reset_sink
|
||||
#
|
||||
add_interface reset_sink reset end
|
||||
set_interface_property reset_sink associatedClock clock_sink
|
||||
set_interface_property reset_sink synchronousEdges DEASSERT
|
||||
set_interface_property reset_sink ENABLED true
|
||||
set_interface_property reset_sink EXPORT_OF ""
|
||||
set_interface_property reset_sink PORT_NAME_MAP ""
|
||||
set_interface_property reset_sink CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property reset_sink SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port reset_sink rst_n reset_n Input 1
|
||||
|
||||
|
||||
#
|
||||
# connection point avalon_master
|
||||
#
|
||||
add_interface avalon_master avalon start
|
||||
set_interface_property avalon_master addressUnits SYMBOLS
|
||||
set_interface_property avalon_master associatedClock clock_sink
|
||||
set_interface_property avalon_master associatedReset reset_sink
|
||||
set_interface_property avalon_master bitsPerSymbol 8
|
||||
set_interface_property avalon_master burstOnBurstBoundariesOnly false
|
||||
set_interface_property avalon_master burstcountUnits WORDS
|
||||
set_interface_property avalon_master doStreamReads false
|
||||
set_interface_property avalon_master doStreamWrites false
|
||||
set_interface_property avalon_master holdTime 0
|
||||
set_interface_property avalon_master linewrapBursts false
|
||||
set_interface_property avalon_master maximumPendingReadTransactions 0
|
||||
set_interface_property avalon_master maximumPendingWriteTransactions 0
|
||||
set_interface_property avalon_master readLatency 0
|
||||
set_interface_property avalon_master readWaitTime 1
|
||||
set_interface_property avalon_master setupTime 0
|
||||
set_interface_property avalon_master timingUnits Cycles
|
||||
set_interface_property avalon_master writeWaitTime 0
|
||||
set_interface_property avalon_master ENABLED true
|
||||
set_interface_property avalon_master EXPORT_OF ""
|
||||
set_interface_property avalon_master PORT_NAME_MAP ""
|
||||
set_interface_property avalon_master CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property avalon_master SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port avalon_master avalon_master_address address Output 32
|
||||
add_interface_port avalon_master avalon_master_burstcount burstcount Output 5
|
||||
add_interface_port avalon_master avalon_master_read read Output 1
|
||||
add_interface_port avalon_master avalon_master_readdata readdata Input 32
|
||||
add_interface_port avalon_master avalon_master_readdatavalid readdatavalid Input 1
|
||||
add_interface_port avalon_master avalon_master_waitreq waitrequest Input 1
|
||||
|
||||
|
||||
#
|
||||
# connection point irq
|
||||
#
|
||||
add_interface irq interrupt end
|
||||
set_interface_property irq associatedAddressablePoint avalon_slave
|
||||
set_interface_property irq associatedClock clock_sink
|
||||
set_interface_property irq associatedReset reset_sink
|
||||
set_interface_property irq bridgedReceiverOffset ""
|
||||
set_interface_property irq bridgesToReceiver ""
|
||||
set_interface_property irq ENABLED true
|
||||
set_interface_property irq EXPORT_OF ""
|
||||
set_interface_property irq PORT_NAME_MAP ""
|
||||
set_interface_property irq CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property irq SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port irq av_irq irq Output 1
|
||||
|
||||
|
||||
#
|
||||
# connection point LT24
|
||||
#
|
||||
add_interface LT24 conduit end
|
||||
set_interface_property LT24 associatedClock clock_sink
|
||||
set_interface_property LT24 associatedReset reset_sink
|
||||
set_interface_property LT24 ENABLED true
|
||||
set_interface_property LT24 EXPORT_OF ""
|
||||
set_interface_property LT24 PORT_NAME_MAP ""
|
||||
set_interface_property LT24 CMSIS_SVD_VARIABLES ""
|
||||
set_interface_property LT24 SVD_ADDRESS_GROUP ""
|
||||
|
||||
add_interface_port LT24 lt24_cs_n cs_n Output 1
|
||||
add_interface_port LT24 lt24_data data Output 16
|
||||
add_interface_port LT24 lt24_lcd_on lcd_on Output 1
|
||||
add_interface_port LT24 lt24_rd_n rd_n Output 1
|
||||
add_interface_port LT24 lt24_reset_n reset_n Output 1
|
||||
add_interface_port LT24 lt24_rs rs Output 1
|
||||
add_interface_port LT24 lt24_wr_n wr_n Output 1
|
||||
|
142
cs473-es/lab3/hw/hdl/LCDController/LCDController_tb.vhd
Normal file
142
cs473-es/lab3/hw/hdl/LCDController/LCDController_tb.vhd
Normal file
@@ -0,0 +1,142 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
use std.env.finish;
|
||||
|
||||
|
||||
entity LCDController_tb is
|
||||
end LCDController_tb;
|
||||
|
||||
architecture test of LCDController_tb is
|
||||
constant CLK_PERIOD : time := 20 ns;
|
||||
|
||||
signal clk : std_logic := '0';
|
||||
signal rst_n : std_logic;
|
||||
signal waitreq, readdatavalid, fifo_almost_empty : std_logic;
|
||||
|
||||
-- Avalon slave interface
|
||||
signal avalon_slave_address : std_logic_vector (3 downto 0);
|
||||
signal avalon_slave_write : std_logic;
|
||||
signal avalon_slave_writedata : std_logic_vector(31 downto 0);
|
||||
signal avalon_slave_read : std_logic;
|
||||
signal avalon_slave_readdata : std_logic_vector(31 downto 0);
|
||||
|
||||
-- Avalon master interface
|
||||
signal avalon_master_waitreq : std_logic;
|
||||
signal avalon_master_readdata : std_logic_vector(31 downto 0);
|
||||
signal avalon_master_readdatavalid : std_logic;
|
||||
|
||||
signal avalon_master_read : std_logic;
|
||||
signal irq : std_logic;
|
||||
|
||||
begin
|
||||
|
||||
-- Instantiate DUT
|
||||
dut : entity work.LCDController
|
||||
port map(
|
||||
clk => clk,
|
||||
rst_n => rst_n,
|
||||
av_irq => irq,
|
||||
|
||||
avalon_slave_address => avalon_slave_address,
|
||||
avalon_slave_write => avalon_slave_write,
|
||||
avalon_slave_writedata => avalon_slave_writedata,
|
||||
avalon_slave_read => avalon_slave_read,
|
||||
avalon_slave_readdata => avalon_slave_readdata,
|
||||
avalon_master_waitreq => avalon_master_waitreq,
|
||||
avalon_master_readdata => avalon_master_readdata,
|
||||
avalon_master_readdatavalid => avalon_master_readdatavalid,
|
||||
avalon_master_read => avalon_master_read
|
||||
);
|
||||
|
||||
-- Clocking process
|
||||
clk_generation : process
|
||||
begin
|
||||
clk <= not clk;
|
||||
wait for CLK_PERIOD / 2;
|
||||
end process;
|
||||
|
||||
-- Testbench
|
||||
tb : process
|
||||
begin
|
||||
avalon_slave_address <= "0011";
|
||||
avalon_slave_write <= '0';
|
||||
avalon_slave_writedata <= (others => 'Z');
|
||||
|
||||
-- Dummy signals from bus
|
||||
avalon_master_readdata <= X"12341234";
|
||||
avalon_master_readdatavalid <= '0';
|
||||
avalon_master_waitreq <= '1';
|
||||
|
||||
-- Reset
|
||||
rst_n <= '0';
|
||||
wait for CLK_PERIOD * 2.5;
|
||||
rst_n <= '1';
|
||||
wait for CLK_PERIOD * 2;
|
||||
|
||||
-- Initiate CMD cycle
|
||||
avalon_slave_address <= "0000";
|
||||
wait until rising_edge(clk);
|
||||
avalon_slave_writedata <= (27 downto 0 => '0') & "1000";
|
||||
avalon_slave_write <= '1';
|
||||
wait until rising_edge(clk);
|
||||
avalon_slave_write <= '0';
|
||||
wait for CLK_PERIOD * 20;
|
||||
|
||||
avalon_slave_address <= "0001";
|
||||
wait until rising_edge(clk);
|
||||
avalon_slave_writedata <= (27 downto 0 => '0') & "1111";
|
||||
avalon_slave_write <= '1';
|
||||
wait until rising_edge(clk);
|
||||
avalon_slave_write <= '0';
|
||||
wait for CLK_PERIOD * 20;
|
||||
|
||||
-- Loop refreshing
|
||||
loop
|
||||
wait for CLK_PERIOD * 50;
|
||||
|
||||
-- Initiate a refresh cycle
|
||||
avalon_slave_address <= "0011";
|
||||
wait until rising_edge(clk);
|
||||
avalon_slave_write <= '1';
|
||||
wait until rising_edge(clk);
|
||||
avalon_slave_write <= '0';
|
||||
|
||||
-- Wait until bus grant
|
||||
wait for CLK_PERIOD * 3;
|
||||
avalon_master_waitreq <= '0';
|
||||
wait for CLK_PERIOD;
|
||||
|
||||
-- Emulate that new read data is valid each cycle of the burst
|
||||
avalon_master_readdatavalid <= '1';
|
||||
for i in 0 to 15 loop
|
||||
avalon_master_readdata <= std_logic_vector(to_unsigned(i*2 + ((i*2+1)*2**16), avalon_master_readdata'length));
|
||||
wait for CLK_PERIOD;
|
||||
end loop;
|
||||
-- burst finished
|
||||
avalon_master_readdatavalid <= '0';
|
||||
|
||||
loop
|
||||
-- Wait until the previous 16 words have been shifted to LCD and new pixels
|
||||
-- are requested
|
||||
wait until avalon_master_read = '1' or irq = '1';
|
||||
exit when irq = '1';
|
||||
|
||||
-- Wait some time for bus grant...
|
||||
wait for CLK_PERIOD * 3;
|
||||
|
||||
-- Start providing some data
|
||||
avalon_master_readdatavalid <= '1';
|
||||
for i in 0 to 15 loop
|
||||
avalon_master_readdata <= std_logic_vector(to_unsigned(i*2 + ((i*2+1)*2**16), avalon_master_readdata'length));
|
||||
wait for CLK_PERIOD;
|
||||
end loop;
|
||||
avalon_master_readdatavalid <= '0';
|
||||
end loop;
|
||||
|
||||
end loop;
|
||||
|
||||
end process;
|
||||
|
||||
end;
|
188
cs473-es/lab3/hw/hdl/LCDController/LCDDriver.vhd
Normal file
188
cs473-es/lab3/hw/hdl/LCDController/LCDDriver.vhd
Normal file
@@ -0,0 +1,188 @@
|
||||
-- altera vhdl_input_version vhdl_2008
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
entity LCDDriver is
|
||||
generic (
|
||||
F_CLK : natural -- Board frequency in Hz
|
||||
);
|
||||
port (
|
||||
clk : in std_logic;
|
||||
rst_n : in std_logic;
|
||||
|
||||
data_in : in std_logic_vector(15 downto 0);
|
||||
empty_in : in std_logic;
|
||||
refresh_in : in std_logic;
|
||||
|
||||
cmd_en_in : in std_logic;
|
||||
cmd_dcx_in : in std_logic;
|
||||
cmd_data_in : in std_logic_vector(7 downto 0);
|
||||
|
||||
data_out : out std_logic_vector(15 downto 0);
|
||||
rd_n : out std_logic;
|
||||
wr_n : out std_logic;
|
||||
rs : out std_logic;
|
||||
cs_n : out std_logic;
|
||||
|
||||
lcd_rdreq : out std_logic;
|
||||
|
||||
busy : out std_logic
|
||||
);
|
||||
end LCDDriver;
|
||||
|
||||
architecture Behavioral of LCDDriver is
|
||||
|
||||
constant F_LCD : natural := natural(real(25)*10**(6.0));
|
||||
constant F_LCD_MIN : natural := natural(real(12.5)*10**(6.0));
|
||||
constant F_LCD_MAX : natural := natural(real(30)*10**(6.0));
|
||||
|
||||
constant lcd_clk_en : std_logic := '1' ;
|
||||
signal lcd_clk : std_logic;
|
||||
|
||||
type GState is (tx, cmd, ready, std_wait,cmd_wait);
|
||||
type SNDState is (init, wrx, tx, done);
|
||||
|
||||
signal snds_reg, snds_next : SNDState;
|
||||
signal gs_reg, gs_next : GState;
|
||||
|
||||
signal data_reg : std_logic_vector(15 downto 0);
|
||||
|
||||
signal cmd_dcx_reg : std_logic := '1';
|
||||
signal cmd_data_reg : std_logic_vector(7 downto 0);
|
||||
|
||||
signal rdreq_limiter : std_logic;
|
||||
|
||||
begin
|
||||
|
||||
busy <= '0' when gs_reg = ready else '1';
|
||||
|
||||
--Global State Process
|
||||
process (all) begin
|
||||
gs_next <= gs_reg;
|
||||
snds_next <= snds_reg;
|
||||
|
||||
case gs_reg is
|
||||
when ready =>
|
||||
if cmd_en_in = '1' then
|
||||
if lcd_clk = '1' then
|
||||
gs_next <= cmd;
|
||||
snds_next <= wrx;
|
||||
else
|
||||
gs_next <= cmd_wait;
|
||||
end if;
|
||||
elsif refresh_in = '1' then
|
||||
gs_next <= std_wait;
|
||||
end if;
|
||||
when cmd_wait =>
|
||||
if lcd_clk = '1' then
|
||||
gs_next <= cmd;
|
||||
snds_next <= wrx;
|
||||
end if;
|
||||
when std_wait =>
|
||||
if empty_in = '0' then
|
||||
if lcd_clk = '1' then
|
||||
gs_next <= tx;
|
||||
snds_next <= init;
|
||||
end if;
|
||||
end if;
|
||||
when tx =>
|
||||
if snds_reg = done then
|
||||
gs_next <= ready;
|
||||
end if;
|
||||
when cmd =>
|
||||
if snds_reg = done then
|
||||
gs_next <= ready;
|
||||
end if;
|
||||
end case;
|
||||
|
||||
if (gs_reg = cmd or gs_reg = tx) then
|
||||
case snds_reg is
|
||||
when wrx =>
|
||||
snds_next <= tx;
|
||||
when tx =>
|
||||
if gs_reg = cmd then
|
||||
snds_next <= done;
|
||||
elsif gs_reg = tx then
|
||||
if empty_in = '1' then
|
||||
snds_next <= done;
|
||||
else
|
||||
snds_next <= wrx;
|
||||
end if;
|
||||
end if;
|
||||
when init =>
|
||||
snds_next <= wrx;
|
||||
when others =>
|
||||
null;
|
||||
end case;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
rs <= cmd_dcx_reg when gs_reg = cmd else '1'; -- DCX when CMD else Keep high
|
||||
cs_n <= not rst_n; -- Chip Select
|
||||
wr_n <= '0' when (gs_reg = cmd or gs_reg = tx) and
|
||||
snds_reg = wrx else '1'; -- Write data on rising edge
|
||||
rd_n <= '1'; -- Unused, Read data on rising edge
|
||||
|
||||
data_out <= data_reg when gs_reg = tx else
|
||||
"00000000" & cmd_data_reg when gs_reg = cmd else
|
||||
(others => '0');
|
||||
|
||||
lcd_rdreq <= '1' when (gs_reg = ready and gs_next = std_wait) or
|
||||
(snds_reg /= init and snds_next = init) or
|
||||
(rdreq_limiter = '0' and gs_reg = tx and snds_reg = tx) else '0';
|
||||
|
||||
-- Clock Sync & State Handler
|
||||
process (clk, rst_n) begin
|
||||
if rst_n = '0' then
|
||||
gs_reg <= ready;
|
||||
snds_reg <= wrx;
|
||||
|
||||
data_reg <= (others => '0');
|
||||
|
||||
cmd_dcx_reg <= '0';
|
||||
cmd_data_reg <= (others => '0');
|
||||
elsif rising_edge(clk) then
|
||||
|
||||
gs_reg <= gs_next;
|
||||
if lcd_clk = '1' then
|
||||
snds_reg <= snds_next; -- We run the SND at 25Mhz to respect state timings
|
||||
|
||||
if (snds_reg = tx or snds_reg = init) then
|
||||
data_reg <= data_in;
|
||||
end if;
|
||||
if (snds_reg = wrx) then
|
||||
rdreq_limiter <= '0';
|
||||
end if;
|
||||
end if;
|
||||
|
||||
if lcd_rdreq = '1' then
|
||||
rdreq_limiter <= '1';
|
||||
end if;
|
||||
|
||||
if gs_reg = ready and (cmd_en_in = '1') then
|
||||
cmd_dcx_reg <= cmd_dcx_in;
|
||||
cmd_data_reg <= cmd_data_in;
|
||||
end if;
|
||||
|
||||
end if;
|
||||
end process;
|
||||
|
||||
-- WS output clock
|
||||
clkgen_ent : entity work.ClkGen
|
||||
generic map (
|
||||
F_CLK => F_CLK,
|
||||
F_OUT => integer(F_LCD),
|
||||
F_MIN => integer(F_LCD_MIN),
|
||||
F_MAX => integer(F_LCD_MAX)
|
||||
)
|
||||
port map (
|
||||
clk => clk,
|
||||
rst_n => rst_n,
|
||||
clk_o => lcd_clk,
|
||||
en => lcd_clk_en
|
||||
);
|
||||
|
||||
|
||||
end Behavioral;
|
141
cs473-es/lab3/hw/hdl/LCDController/LCDDriver_tb.vhd
Normal file
141
cs473-es/lab3/hw/hdl/LCDController/LCDDriver_tb.vhd
Normal file
@@ -0,0 +1,141 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
|
||||
entity LCDDriver_tb is
|
||||
end LCDDriver_tb;
|
||||
|
||||
architecture test of LCDDriver_tb is
|
||||
constant CLK_PERIOD : time := 20 ns;
|
||||
constant N_LED_MAX : integer := 255;
|
||||
|
||||
signal clk : std_logic := '0';
|
||||
signal rst_n : std_logic := '1';
|
||||
|
||||
signal data_in : std_logic_vector(15 downto 0) := (others=> '0');
|
||||
signal empty_in : std_logic := '1';
|
||||
signal refresh_in : std_logic := '0';
|
||||
|
||||
signal cmd_en_in : std_logic := '0';
|
||||
signal cmd_dcx_in : std_logic := '0';
|
||||
signal cmd_data_in : std_logic_vector(7 downto 0) := (others => '0');
|
||||
|
||||
signal m_finished_in : std_logic := '0';
|
||||
|
||||
signal data_out : std_logic_vector(15 downto 0);
|
||||
signal rd_n : std_logic;
|
||||
signal wr_n : std_logic;
|
||||
signal rs : std_logic;
|
||||
signal cs_n : std_logic;
|
||||
|
||||
signal lcd_rdreq : std_logic;
|
||||
signal rdreq_cnt : integer := 0;
|
||||
|
||||
signal busy : std_logic;
|
||||
|
||||
begin
|
||||
-- Instantiate DUT
|
||||
dut : entity work.LCDDriver
|
||||
generic map (
|
||||
F_CLK => 50000000
|
||||
)
|
||||
port map(
|
||||
clk => clk,
|
||||
rst_n => rst_n,
|
||||
data_in => data_in,
|
||||
empty_in => empty_in,
|
||||
refresh_in => refresh_in,
|
||||
|
||||
cmd_en_in => cmd_en_in,
|
||||
cmd_dcx_in => cmd_dcx_in,
|
||||
cmd_data_in => cmd_data_in,
|
||||
|
||||
m_finished_in => m_finished_in,
|
||||
|
||||
data_out => data_out,
|
||||
rd_n => rd_n,
|
||||
wr_n => wr_n,
|
||||
rs => rs,
|
||||
cs_n => cs_n,
|
||||
|
||||
lcd_rdreq => lcd_rdreq,
|
||||
|
||||
busy => busy
|
||||
);
|
||||
|
||||
-- Clocking process
|
||||
clk_generation : process
|
||||
begin
|
||||
clk <= not clk;
|
||||
wait for CLK_PERIOD / 2;
|
||||
end process;
|
||||
|
||||
process (lcd_rdreq) begin
|
||||
if rising_edge(lcd_rdreq) then
|
||||
if (rdreq_cnt = 0) then
|
||||
data_in <= "1111111111111111";
|
||||
elsif (rdreq_cnt = 1) then
|
||||
data_in <= "1111000000001111";
|
||||
elsif (rdreq_cnt = 2) then
|
||||
data_in <= "1111111100000000";
|
||||
elsif (rdreq_cnt = 3) then
|
||||
data_in <= "0000000011111111";
|
||||
else
|
||||
data_in <= "0000000000000000";
|
||||
end if;
|
||||
rdreq_cnt <= rdreq_cnt + 1;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
tb : process
|
||||
procedure wait_ready is
|
||||
begin
|
||||
if busy = '1' then
|
||||
wait until busy = '0';
|
||||
end if;
|
||||
end procedure wait_ready;
|
||||
|
||||
procedure finish is
|
||||
begin
|
||||
wait until falling_edge(clk);
|
||||
wait_ready;
|
||||
wait;
|
||||
end procedure finish ;
|
||||
|
||||
begin
|
||||
-- Reset
|
||||
rst_n <= '0';
|
||||
wait for CLK_PERIOD * 2.5;
|
||||
rst_n <= '1';
|
||||
wait for CLK_PERIOD * 2;
|
||||
wait_ready;
|
||||
|
||||
-- Test CMD
|
||||
cmd_en_in <= '1';
|
||||
cmd_dcx_in <= '1';
|
||||
cmd_data_in <= "11010011";
|
||||
wait for CLK_PERIOD * 2.5;
|
||||
cmd_en_in <= '0';
|
||||
|
||||
wait_ready;
|
||||
|
||||
-- Test REFRESH
|
||||
refresh_in <= '1';
|
||||
wait for CLK_PERIOD * 2.5;
|
||||
refresh_in <= '0';
|
||||
wait for CLK_PERIOD * 4;
|
||||
empty_in <= '0';
|
||||
wait until rdreq_cnt = 4;
|
||||
empty_in <= '1';
|
||||
--m_finished_in => m_finished_in,
|
||||
wait_ready;
|
||||
|
||||
|
||||
-- Test finished
|
||||
finish;
|
||||
|
||||
end process;
|
||||
|
||||
end;
|
157
cs473-es/lab3/hw/hdl/LCDController/PixTrans.vhd
Normal file
157
cs473-es/lab3/hw/hdl/LCDController/PixTrans.vhd
Normal file
@@ -0,0 +1,157 @@
|
||||
-- altera vhdl_input_version vhdl_2008
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
|
||||
|
||||
entity PixTrans is
|
||||
generic (
|
||||
MAX_H : natural;
|
||||
MAX_W : natural
|
||||
);
|
||||
port (
|
||||
clk : in std_logic;
|
||||
rst_n : in std_logic;
|
||||
|
||||
lcd_req : in std_logic;
|
||||
data : out std_logic_vector(15 downto 0);
|
||||
empty : out std_logic;
|
||||
|
||||
fifo_req : out std_logic;
|
||||
fifo_q : in std_logic_vector(31 downto 0);
|
||||
fifo_empty : in std_logic;
|
||||
|
||||
-- Currently configured width/height of the buffer
|
||||
w : in natural;
|
||||
h : in natural
|
||||
);
|
||||
end PixTrans;
|
||||
|
||||
architecture behavioral of PixTrans is
|
||||
subtype Pixel is std_logic_vector(15 downto 0);
|
||||
|
||||
-- Generic constants
|
||||
constant BLANK : Pixel := "0000000000000000"; --(others => '0');
|
||||
|
||||
-- Type definitions
|
||||
type PIXEL_SOURCE is (S_BLANK, S_FIFO, S_BUFFER);
|
||||
|
||||
-- Inferred registers
|
||||
signal pixbuf_reg, pixbuf_next : Pixel;
|
||||
signal pixbufvalid_reg, pixbufvalid_next : boolean;
|
||||
signal pos_x_reg, pos_x_next : integer range 1 to MAX_W;
|
||||
signal pos_y_reg, pos_y_next : integer range 1 to MAX_H;
|
||||
signal pix_src_reg, pix_src_next : PIXEL_SOURCE;
|
||||
signal finished_next, finished_reg : std_logic;
|
||||
|
||||
-- Convenience signals
|
||||
signal inBlankArea_reg, inBlankArea_next : boolean;
|
||||
signal lcd_req_delayed_reg : std_logic;
|
||||
|
||||
begin
|
||||
|
||||
-- Update cursor
|
||||
process(all) begin
|
||||
finished_next <= finished_reg;
|
||||
pos_y_next <= pos_y_reg;
|
||||
pos_x_next <= pos_x_reg;
|
||||
|
||||
if lcd_req_delayed_reg = '1' then
|
||||
if pos_x_reg = MAX_W and pos_y_reg = MAX_H then
|
||||
pos_x_next <= 1;
|
||||
pos_y_next <= 1;
|
||||
|
||||
elsif pos_x_reg = MAX_W then
|
||||
pos_x_next <= 1;
|
||||
pos_y_next <= pos_y_reg + 1;
|
||||
else
|
||||
pos_x_next <= pos_x_reg + 1;
|
||||
end if;
|
||||
|
||||
if pos_x_reg = MAX_W and pos_y_reg = MAX_H then
|
||||
finished_next <= '1' and not finished_reg;
|
||||
else
|
||||
finished_next <= '0';
|
||||
end if;
|
||||
end if;
|
||||
inBlankArea_next <= pos_y_next > h or pos_x_next > w;
|
||||
end process;
|
||||
|
||||
|
||||
-- Data process
|
||||
process(all) begin
|
||||
pix_src_next <= pix_src_reg;
|
||||
pixbufvalid_next <= pixbufvalid_reg;
|
||||
|
||||
-- FIFO output signals
|
||||
fifo_req <= '0';
|
||||
|
||||
if lcd_req_delayed_reg = '1' then
|
||||
if inBlankArea_next then
|
||||
pix_src_next <= S_BLANK;
|
||||
elsif pixbufvalid_reg then
|
||||
-- Has valid pixel in pixel buffer
|
||||
pix_src_next <= S_BUFFER;
|
||||
pixbufvalid_next <= false;
|
||||
else
|
||||
|
||||
fifo_req <= '1';
|
||||
|
||||
-- fifo_req should be kept high until pixel is available
|
||||
if fifo_empty = '0' then
|
||||
-- Must request pixel from FIFO
|
||||
pix_src_next <= S_FIFO;
|
||||
pixbufvalid_next <= true;
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
end process;
|
||||
|
||||
-- Data request multiplexer (pixel source)
|
||||
with pix_src_reg select data <=
|
||||
BLANK when S_BLANK,
|
||||
fifo_q(15 downto 0) when S_FIFO,
|
||||
pixbuf_reg when S_BUFFER;
|
||||
|
||||
|
||||
-- Fill pixel buffer with the upper half word of the input FIFO word when
|
||||
-- reading from the fifo
|
||||
pixbuf_next <= fifo_q(31 downto 16) when pix_src_reg = S_FIFO else pixbuf_reg;
|
||||
|
||||
-- LCD Controller empty signal
|
||||
process(all) begin
|
||||
if fifo_empty = '1' then
|
||||
empty <= '1';
|
||||
else
|
||||
empty <= finished_reg;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
-- Clocking process/register inferrence
|
||||
process(clk) begin
|
||||
if rising_edge(clk) then
|
||||
if rst_n = '0' then
|
||||
pos_x_reg <= 1;
|
||||
pos_y_reg <= 1;
|
||||
pixbuf_reg <= BLANK;
|
||||
pixbufvalid_reg <= false;
|
||||
pix_src_reg <= S_BLANK;
|
||||
inBlankArea_reg <= false;
|
||||
finished_reg <= '0';
|
||||
lcd_req_delayed_reg <= '0';
|
||||
else
|
||||
pos_x_reg <= pos_x_next;
|
||||
pos_y_reg <= pos_y_next;
|
||||
pixbuf_reg <= pixbuf_next;
|
||||
pixbufvalid_reg <= pixbufvalid_next;
|
||||
pix_src_reg <= pix_src_next;
|
||||
inBlankArea_reg <= inBlankArea_next;
|
||||
finished_reg <= finished_next;
|
||||
lcd_req_delayed_reg <= lcd_req;
|
||||
end if;
|
||||
end if;
|
||||
end process;
|
||||
|
||||
|
||||
end behavioral ; -- behavioral
|
90
cs473-es/lab3/hw/hdl/LCDController/PixTrans_tb.vhd
Normal file
90
cs473-es/lab3/hw/hdl/LCDController/PixTrans_tb.vhd
Normal file
@@ -0,0 +1,90 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all;
|
||||
use ieee.numeric_std.all;
|
||||
use ieee.math_real.all;
|
||||
|
||||
|
||||
entity PixTrans_tb is
|
||||
end PixTrans_tb;
|
||||
|
||||
architecture test of PixTrans_tb is
|
||||
constant CLK_PERIOD : time := 20 ns;
|
||||
constant N_LED_MAX : integer := 255;
|
||||
|
||||
constant MAX_H : natural := 4;
|
||||
constant MAX_W : natural := 4;
|
||||
|
||||
constant ACTUAL_H : natural := 2;
|
||||
constant ACTUAL_W : natural := 2;
|
||||
|
||||
signal clk : std_logic := '0';
|
||||
signal rst_n : std_logic;
|
||||
|
||||
signal fifo_empty, lcd_req : std_logic;
|
||||
signal fifo_q : std_logic_vector(31 downto 0);
|
||||
signal w, h : natural;
|
||||
|
||||
begin
|
||||
|
||||
w <= ACTUAL_W;
|
||||
h <= ACTUAL_H;
|
||||
|
||||
-- Instantiate DUT
|
||||
dut : entity work.PixTrans
|
||||
generic map (
|
||||
MAX_H => MAX_H,
|
||||
MAX_W => MAX_W
|
||||
)
|
||||
port map(
|
||||
clk => clk,
|
||||
rst_n => rst_n,
|
||||
lcd_req => lcd_req,
|
||||
fifo_q => fifo_q,
|
||||
fifo_empty => fifo_empty,
|
||||
w => w,
|
||||
h => h
|
||||
);
|
||||
|
||||
-- Clocking process
|
||||
clk_generation : process
|
||||
begin
|
||||
clk <= not clk;
|
||||
wait for CLK_PERIOD / 2;
|
||||
end process;
|
||||
|
||||
-- Testbench
|
||||
tb : process
|
||||
|
||||
procedure getPixel is
|
||||
begin
|
||||
wait until rising_edge(clk);
|
||||
lcd_req <= '1';
|
||||
wait for CLK_PERIOD;
|
||||
wait until rising_edge(clk);
|
||||
lcd_req <= '0';
|
||||
wait for CLK_PERIOD*3;
|
||||
end procedure getPixel;
|
||||
begin
|
||||
-- Just let the FIFO interface always provide data
|
||||
fifo_q <= X"FFFF" & X"F0F0";
|
||||
fifo_empty <= '0';
|
||||
lcd_req <= '0';
|
||||
|
||||
-- Reset
|
||||
rst_n <= '0';
|
||||
wait for CLK_PERIOD * 2.5;
|
||||
rst_n <= '1';
|
||||
wait for CLK_PERIOD * 2;
|
||||
|
||||
-- Get some pixels
|
||||
for i in 1 to MAX_H*MAX_W loop
|
||||
report "hello";
|
||||
getPixel;
|
||||
end loop;
|
||||
|
||||
-- Test finished
|
||||
wait;
|
||||
|
||||
end process;
|
||||
|
||||
end;
|
480
cs473-es/lab3/hw/modelsim/LCDController.mpf
Normal file
480
cs473-es/lab3/hw/modelsim/LCDController.mpf
Normal file
@@ -0,0 +1,480 @@
|
||||
; Copyright 1991-2009 Mentor Graphics Corporation
|
||||
;
|
||||
; All Rights Reserved.
|
||||
;
|
||||
; THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS THE PROPERTY OF
|
||||
; MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
|
||||
;
|
||||
|
||||
[Library]
|
||||
std = $MODEL_TECH/../std
|
||||
ieee = $MODEL_TECH/../ieee
|
||||
verilog = $MODEL_TECH/../verilog
|
||||
vital2000 = $MODEL_TECH/../vital2000
|
||||
std_developerskit = $MODEL_TECH/../std_developerskit
|
||||
synopsys = $MODEL_TECH/../synopsys
|
||||
modelsim_lib = $MODEL_TECH/../modelsim_lib
|
||||
sv_std = $MODEL_TECH/../sv_std
|
||||
|
||||
; Altera Primitive libraries
|
||||
;
|
||||
; VHDL Section
|
||||
;
|
||||
altera_mf = $MODEL_TECH/../altera/vhdl/altera_mf
|
||||
altera = $MODEL_TECH/../altera/vhdl/altera
|
||||
altera_lnsim = $MODEL_TECH/../altera/vhdl/altera_lnsim
|
||||
lpm = $MODEL_TECH/../altera/vhdl/220model
|
||||
220model = $MODEL_TECH/../altera/vhdl/220model
|
||||
maxii = $MODEL_TECH/../altera/vhdl/maxii
|
||||
maxv = $MODEL_TECH/../altera/vhdl/maxv
|
||||
fiftyfivenm = $MODEL_TECH/../altera/vhdl/fiftyfivenm
|
||||
sgate = $MODEL_TECH/../altera/vhdl/sgate
|
||||
arriaii = $MODEL_TECH/../altera/vhdl/arriaii
|
||||
arriaii_hssi = $MODEL_TECH/../altera/vhdl/arriaii_hssi
|
||||
arriaii_pcie_hip = $MODEL_TECH/../altera/vhdl/arriaii_pcie_hip
|
||||
arriaiigz = $MODEL_TECH/../altera/vhdl/arriaiigz
|
||||
arriaiigz_hssi = $MODEL_TECH/../altera/vhdl/arriaiigz_hssi
|
||||
arriaiigz_pcie_hip = $MODEL_TECH/../altera/vhdl/arriaiigz_pcie_hip
|
||||
stratixiv = $MODEL_TECH/../altera/vhdl/stratixiv
|
||||
stratixiv_hssi = $MODEL_TECH/../altera/vhdl/stratixiv_hssi
|
||||
stratixiv_pcie_hip = $MODEL_TECH/../altera/vhdl/stratixiv_pcie_hip
|
||||
cycloneiv = $MODEL_TECH/../altera/vhdl/cycloneiv
|
||||
cycloneiv_hssi = $MODEL_TECH/../altera/vhdl/cycloneiv_hssi
|
||||
cycloneiv_pcie_hip = $MODEL_TECH/../altera/vhdl/cycloneiv_pcie_hip
|
||||
cycloneive = $MODEL_TECH/../altera/vhdl/cycloneive
|
||||
stratixv = $MODEL_TECH/../altera/vhdl/stratixv
|
||||
stratixv_hssi = $MODEL_TECH/../altera/vhdl/stratixv_hssi
|
||||
stratixv_pcie_hip = $MODEL_TECH/../altera/vhdl/stratixv_pcie_hip
|
||||
arriavgz = $MODEL_TECH/../altera/vhdl/arriavgz
|
||||
arriavgz_hssi = $MODEL_TECH/../altera/vhdl/arriavgz_hssi
|
||||
arriavgz_pcie_hip = $MODEL_TECH/../altera/vhdl/arriavgz_pcie_hip
|
||||
arriav = $MODEL_TECH/../altera/vhdl/arriav
|
||||
cyclonev = $MODEL_TECH/../altera/vhdl/cyclonev
|
||||
twentynm = $MODEL_TECH/../altera/vhdl/twentynm
|
||||
twentynm_hssi = $MODEL_TECH/../altera/vhdl/twentynm_hssi
|
||||
twentynm_hip = $MODEL_TECH/../altera/vhdl/twentynm_hip
|
||||
cyclone10lp = $MODEL_TECH/../altera/vhdl/cyclone10lp
|
||||
;
|
||||
; Verilog Section
|
||||
;
|
||||
altera_mf_ver = $MODEL_TECH/../altera/verilog/altera_mf
|
||||
altera_ver = $MODEL_TECH/../altera/verilog/altera
|
||||
altera_lnsim_ver = $MODEL_TECH/../altera/verilog/altera_lnsim
|
||||
lpm_ver = $MODEL_TECH/../altera/verilog/220model
|
||||
220model_ver = $MODEL_TECH/../altera/verilog/220model
|
||||
maxii_ver = $MODEL_TECH/../altera/verilog/maxii
|
||||
maxv_ver = $MODEL_TECH/../altera/verilog/maxv
|
||||
fiftyfivenm_ver = $MODEL_TECH/../altera/verilog/fiftyfivenm
|
||||
sgate_ver = $MODEL_TECH/../altera/verilog/sgate
|
||||
arriaii_ver = $MODEL_TECH/../altera/verilog/arriaii
|
||||
arriaii_hssi_ver = $MODEL_TECH/../altera/verilog/arriaii_hssi
|
||||
arriaii_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriaii_pcie_hip
|
||||
arriaiigz_ver = $MODEL_TECH/../altera/verilog/arriaiigz
|
||||
arriaiigz_hssi_ver = $MODEL_TECH/../altera/verilog/arriaiigz_hssi
|
||||
arriaiigz_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriaiigz_pcie_hip
|
||||
stratixiv_ver = $MODEL_TECH/../altera/verilog/stratixiv
|
||||
stratixiv_hssi_ver = $MODEL_TECH/../altera/verilog/stratixiv_hssi
|
||||
stratixiv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/stratixiv_pcie_hip
|
||||
stratixv_ver = $MODEL_TECH/../altera/verilog/stratixv
|
||||
stratixv_hssi_ver = $MODEL_TECH/../altera/verilog/stratixv_hssi
|
||||
stratixv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/stratixv_pcie_hip
|
||||
arriavgz_ver = $MODEL_TECH/../altera/verilog/arriavgz
|
||||
arriavgz_hssi_ver = $MODEL_TECH/../altera/verilog/arriavgz_hssi
|
||||
arriavgz_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriavgz_pcie_hip
|
||||
arriav_ver = $MODEL_TECH/../altera/verilog/arriav
|
||||
arriav_hssi_ver = $MODEL_TECH/../altera/verilog/arriav_hssi
|
||||
arriav_pcie_hip_ver = $MODEL_TECH/../altera/verilog/arriav_pcie_hip
|
||||
cyclonev_ver = $MODEL_TECH/../altera/verilog/cyclonev
|
||||
cyclonev_hssi_ver = $MODEL_TECH/../altera/verilog/cyclonev_hssi
|
||||
cyclonev_pcie_hip_ver = $MODEL_TECH/../altera/verilog/cyclonev_pcie_hip
|
||||
cycloneiv_ver = $MODEL_TECH/../altera/verilog/cycloneiv
|
||||
cycloneiv_hssi_ver = $MODEL_TECH/../altera/verilog/cycloneiv_hssi
|
||||
cycloneiv_pcie_hip_ver = $MODEL_TECH/../altera/verilog/cycloneiv_pcie_hip
|
||||
cycloneive_ver = $MODEL_TECH/../altera/verilog/cycloneive
|
||||
twentynm_ver = $MODEL_TECH/../altera/verilog/twentynm
|
||||
twentynm_hssi_ver = $MODEL_TECH/../altera/verilog/twentynm_hssi
|
||||
twentynm_hip_ver = $MODEL_TECH/../altera/verilog/twentynm_hip
|
||||
cyclone10lp_ver = $MODEL_TECH/../altera/verilog/cyclone10lp
|
||||
|
||||
work = work
|
||||
[vcom]
|
||||
; VHDL93 variable selects language version as the default.
|
||||
; Default is VHDL-2002.
|
||||
; Value of 0 or 1987 for VHDL-1987.
|
||||
; Value of 1 or 1993 for VHDL-1993.
|
||||
; Default or value of 2 or 2002 for VHDL-2002.
|
||||
; Default or value of 3 or 2008 for VHDL-2008.
|
||||
VHDL93 = 2002
|
||||
|
||||
; Show source line containing error. Default is off.
|
||||
; Show_source = 1
|
||||
|
||||
; Turn off unbound-component warnings. Default is on.
|
||||
; Show_Warning1 = 0
|
||||
|
||||
; Turn off process-without-a-wait-statement warnings. Default is on.
|
||||
; Show_Warning2 = 0
|
||||
|
||||
; Turn off null-range warnings. Default is on.
|
||||
; Show_Warning3 = 0
|
||||
|
||||
; Turn off no-space-in-time-literal warnings. Default is on.
|
||||
; Show_Warning4 = 0
|
||||
|
||||
; Turn off multiple-drivers-on-unresolved-signal warnings. Default is on.
|
||||
; Show_Warning5 = 0
|
||||
|
||||
; Turn off optimization for IEEE std_logic_1164 package. Default is on.
|
||||
; Optimize_1164 = 0
|
||||
|
||||
; Turn on resolving of ambiguous function overloading in favor of the
|
||||
; "explicit" function declaration (not the one automatically created by
|
||||
; the compiler for each type declaration). Default is off.
|
||||
; The .ini file has Explicit enabled so that std_logic_signed/unsigned
|
||||
; will match the behavior of synthesis tools.
|
||||
Explicit = 1
|
||||
|
||||
; Turn off acceleration of the VITAL packages. Default is to accelerate.
|
||||
; NoVital = 1
|
||||
|
||||
; Turn off VITAL compliance checking. Default is checking on.
|
||||
; NoVitalCheck = 1
|
||||
|
||||
; Ignore VITAL compliance checking errors. Default is to not ignore.
|
||||
; IgnoreVitalErrors = 1
|
||||
|
||||
; Turn off VITAL compliance checking warnings. Default is to show warnings.
|
||||
; Show_VitalChecksWarnings = 0
|
||||
|
||||
; Keep silent about case statement static warnings.
|
||||
; Default is to give a warning.
|
||||
; NoCaseStaticError = 1
|
||||
|
||||
; Keep silent about warnings caused by aggregates that are not locally static.
|
||||
; Default is to give a warning.
|
||||
; NoOthersStaticError = 1
|
||||
|
||||
; Turn off inclusion of debugging info within design units.
|
||||
; Default is to include debugging info.
|
||||
; NoDebug = 1
|
||||
|
||||
; Turn off "Loading..." messages. Default is messages on.
|
||||
; Quiet = 1
|
||||
|
||||
; Turn on some limited synthesis rule compliance checking. Checks only:
|
||||
; -- signals used (read) by a process must be in the sensitivity list
|
||||
; CheckSynthesis = 1
|
||||
|
||||
; Activate optimizations on expressions that do not involve signals,
|
||||
; waits, or function/procedure/task invocations. Default is off.
|
||||
; ScalarOpts = 1
|
||||
|
||||
; Require the user to specify a configuration for all bindings,
|
||||
; and do not generate a compile time default binding for the
|
||||
; component. This will result in an elaboration error of
|
||||
; 'component not bound' if the user fails to do so. Avoids the rare
|
||||
; issue of a false dependency upon the unused default binding.
|
||||
; RequireConfigForAllDefaultBinding = 1
|
||||
|
||||
; Inhibit range checking on subscripts of arrays. Range checking on
|
||||
; scalars defined with subtypes is inhibited by default.
|
||||
; NoIndexCheck = 1
|
||||
|
||||
; Inhibit range checks on all (implicit and explicit) assignments to
|
||||
; scalar objects defined with subtypes.
|
||||
; NoRangeCheck = 1
|
||||
|
||||
[vlog]
|
||||
|
||||
; Turn off inclusion of debugging info within design units.
|
||||
; Default is to include debugging info.
|
||||
; NoDebug = 1
|
||||
|
||||
; Turn off "loading..." messages. Default is messages on.
|
||||
; Quiet = 1
|
||||
|
||||
; Turn on Verilog hazard checking (order-dependent accessing of global vars).
|
||||
; Default is off.
|
||||
; Hazard = 1
|
||||
|
||||
; Turn on converting regular Verilog identifiers to uppercase. Allows case
|
||||
; insensitivity for module names. Default is no conversion.
|
||||
; UpCase = 1
|
||||
|
||||
; Turn on incremental compilation of modules. Default is off.
|
||||
; Incremental = 1
|
||||
|
||||
; Turns on lint-style checking.
|
||||
; Show_Lint = 1
|
||||
|
||||
[vsim]
|
||||
; Simulator resolution
|
||||
; Set to fs, ps, ns, us, ms, or sec with optional prefix of 1, 10, or 100.
|
||||
Resolution = ps
|
||||
|
||||
; User time unit for run commands
|
||||
; Set to default, fs, ps, ns, us, ms, or sec. The default is to use the
|
||||
; unit specified for Resolution. For example, if Resolution is 100ps,
|
||||
; then UserTimeUnit defaults to ps.
|
||||
; Should generally be set to default.
|
||||
UserTimeUnit = default
|
||||
|
||||
; Default run length
|
||||
RunLength = 100 us
|
||||
|
||||
; Maximum iterations that can be run without advancing simulation time
|
||||
IterationLimit = 5000
|
||||
|
||||
; Directive to license manager:
|
||||
; vhdl Immediately reserve a VHDL license
|
||||
; vlog Immediately reserve a Verilog license
|
||||
; plus Immediately reserve a VHDL and Verilog license
|
||||
; nomgc Do not look for Mentor Graphics Licenses
|
||||
; nomti Do not look for Model Technology Licenses
|
||||
; noqueue Do not wait in the license queue when a license isn't available
|
||||
; viewsim Try for viewer license but accept simulator license(s) instead
|
||||
; of queuing for viewer license
|
||||
; License = plus
|
||||
|
||||
; Stop the simulator after a VHDL/Verilog assertion message
|
||||
; 0 = Note 1 = Warning 2 = Error 3 = Failure 4 = Fatal
|
||||
BreakOnAssertion = 3
|
||||
|
||||
; Assertion Message Format
|
||||
; %S - Severity Level
|
||||
; %R - Report Message
|
||||
; %T - Time of assertion
|
||||
; %D - Delta
|
||||
; %I - Instance or Region pathname (if available)
|
||||
; %% - print '%' character
|
||||
; AssertionFormat = "** %S: %R\n Time: %T Iteration: %D%I\n"
|
||||
|
||||
; Assertion File - alternate file for storing VHDL/Verilog assertion messages
|
||||
; AssertFile = assert.log
|
||||
|
||||
; Default radix for all windows and commands...
|
||||
; Set to symbolic, ascii, binary, octal, decimal, hex, unsigned
|
||||
DefaultRadix = symbolic
|
||||
|
||||
; VSIM Startup command
|
||||
; Startup = do startup.do
|
||||
|
||||
; File for saving command transcript
|
||||
TranscriptFile = transcript
|
||||
|
||||
; File for saving command history
|
||||
; CommandHistory = cmdhist.log
|
||||
|
||||
; Specify whether paths in simulator commands should be described
|
||||
; in VHDL or Verilog format.
|
||||
; For VHDL, PathSeparator = /
|
||||
; For Verilog, PathSeparator = .
|
||||
; Must not be the same character as DatasetSeparator.
|
||||
PathSeparator = /
|
||||
|
||||
; Specify the dataset separator for fully rooted contexts.
|
||||
; The default is ':'. For example, sim:/top
|
||||
; Must not be the same character as PathSeparator.
|
||||
DatasetSeparator = :
|
||||
|
||||
; Disable VHDL assertion messages
|
||||
; IgnoreNote = 1
|
||||
; IgnoreWarning = 1
|
||||
; IgnoreError = 1
|
||||
; IgnoreFailure = 1
|
||||
|
||||
; Default force kind. May be freeze, drive, deposit, or default
|
||||
; or in other terms, fixed, wired, or charged.
|
||||
; A value of "default" will use the signal kind to determine the
|
||||
; force kind, drive for resolved signals, freeze for unresolved signals
|
||||
; DefaultForceKind = freeze
|
||||
|
||||
; If zero, open files when elaborated; otherwise, open files on
|
||||
; first read or write. Default is 0.
|
||||
; DelayFileOpen = 1
|
||||
|
||||
; Control VHDL files opened for write.
|
||||
; 0 = Buffered, 1 = Unbuffered
|
||||
UnbufferedOutput = 0
|
||||
|
||||
; Control the number of VHDL files open concurrently.
|
||||
; This number should always be less than the current ulimit
|
||||
; setting for max file descriptors.
|
||||
; 0 = unlimited
|
||||
ConcurrentFileLimit = 40
|
||||
|
||||
; Control the number of hierarchical regions displayed as
|
||||
; part of a signal name shown in the Wave window.
|
||||
; A value of zero tells VSIM to display the full name.
|
||||
; The default is 0.
|
||||
; WaveSignalNameWidth = 0
|
||||
|
||||
; Turn off warnings from the std_logic_arith, std_logic_unsigned
|
||||
; and std_logic_signed packages.
|
||||
; StdArithNoWarnings = 1
|
||||
|
||||
; Turn off warnings from the IEEE numeric_std and numeric_bit packages.
|
||||
; NumericStdNoWarnings = 1
|
||||
|
||||
; Control the format of the (VHDL) FOR generate statement label
|
||||
; for each iteration. Do not quote it.
|
||||
; The format string here must contain the conversion codes %s and %d,
|
||||
; in that order, and no other conversion codes. The %s represents
|
||||
; the generate_label; the %d represents the generate parameter value
|
||||
; at a particular generate iteration (this is the position number if
|
||||
; the generate parameter is of an enumeration type). Embedded whitespace
|
||||
; is allowed (but discouraged); leading and trailing whitespace is ignored.
|
||||
; Application of the format must result in a unique scope name over all
|
||||
; such names in the design so that name lookup can function properly.
|
||||
; GenerateFormat = %s__%d
|
||||
|
||||
; Specify whether checkpoint files should be compressed.
|
||||
; The default is 1 (compressed).
|
||||
; CheckpointCompressMode = 0
|
||||
|
||||
; List of dynamically loaded objects for Verilog PLI applications
|
||||
; Veriuser = veriuser.sl
|
||||
|
||||
; Specify default options for the restart command. Options can be one
|
||||
; or more of: -force -nobreakpoint -nolist -nolog -nowave
|
||||
; DefaultRestartOptions = -force
|
||||
|
||||
; HP-UX 10.20 ONLY - Enable memory locking to speed up large designs
|
||||
; (> 500 megabyte memory footprint). Default is disabled.
|
||||
; Specify number of megabytes to lock.
|
||||
; LockedMemory = 1000
|
||||
|
||||
; Turn on (1) or off (0) WLF file compression.
|
||||
; The default is 1 (compress WLF file).
|
||||
; WLFCompress = 0
|
||||
|
||||
; Specify whether to save all design hierarchy (1) in the WLF file
|
||||
; or only regions containing logged signals (0).
|
||||
; The default is 0 (save only regions with logged signals).
|
||||
; WLFSaveAllRegions = 1
|
||||
|
||||
; WLF file time limit. Limit WLF file by time, as closely as possible,
|
||||
; to the specified amount of simulation time. When the limit is exceeded
|
||||
; the earliest times get truncated from the file.
|
||||
; If both time and size limits are specified the most restrictive is used.
|
||||
; UserTimeUnits are used if time units are not specified.
|
||||
; The default is 0 (no limit). Example: WLFTimeLimit = {100 ms}
|
||||
; WLFTimeLimit = 0
|
||||
|
||||
; WLF file size limit. Limit WLF file size, as closely as possible,
|
||||
; to the specified number of megabytes. If both time and size limits
|
||||
; are specified then the most restrictive is used.
|
||||
; The default is 0 (no limit).
|
||||
; WLFSizeLimit = 1000
|
||||
|
||||
; Specify whether or not a WLF file should be deleted when the
|
||||
; simulation ends. A value of 1 will cause the WLF file to be deleted.
|
||||
; The default is 0 (do not delete WLF file when simulation ends).
|
||||
; WLFDeleteOnQuit = 1
|
||||
|
||||
; Automatic SDF compilation
|
||||
; Disables automatic compilation of SDF files in flows that support it.
|
||||
; Default is on, uncomment to turn off.
|
||||
; NoAutoSDFCompile = 1
|
||||
|
||||
[lmc]
|
||||
|
||||
[msg_system]
|
||||
; Change a message severity or suppress a message.
|
||||
; The format is: <msg directive> = <msg number>[,<msg number>...]
|
||||
; Examples:
|
||||
; note = 3009
|
||||
; warning = 3033
|
||||
; error = 3010,3016
|
||||
; fatal = 3016,3033
|
||||
; suppress = 3009,3016,3043
|
||||
; The command verror <msg number> can be used to get the complete
|
||||
; description of a message.
|
||||
|
||||
; Control transcripting of elaboration/runtime messages.
|
||||
; The default is to have messages appear in the transcript and
|
||||
; recorded in the wlf file (messages that are recorded in the
|
||||
; wlf file can be viewed in the MsgViewer). The other settings
|
||||
; are to send messages only to the transcript or only to the
|
||||
; wlf file. The valid values are
|
||||
; both {default}
|
||||
; tran {transcript only}
|
||||
; wlf {wlf file only}
|
||||
; msgmode = both
|
||||
[Project]
|
||||
; Warning -- Do not edit the project properties directly.
|
||||
; Property names are dynamic in nature and property
|
||||
; values have special syntax. Changing property data directly
|
||||
; can result in a corrupt MPF file. All project properties
|
||||
; can be modified through project window dialogs.
|
||||
Project_Version = 6
|
||||
Project_DefaultLib = work
|
||||
Project_SortMethod = unused
|
||||
Project_Files_Count = 9
|
||||
Project_File_0 = /home/morten/Work/cs-473/lab3/hw/hdl/LCDController/LCDController.vhd
|
||||
Project_File_P_0 = vhdl_novitalcheck 0 file_type vhdl group_id 0 cover_nofec 0 vhdl_nodebug 0 vhdl_1164 1 vhdl_noload 0 vhdl_synth 0 vhdl_enable0In 0 folder {Top Level} last_compile 1609269952 vhdl_disableopt 0 cover_excludedefault 0 vhdl_vital 0 vhdl_warn1 1 vhdl_showsource 0 vhdl_explicit 1 vhdl_warn2 1 vhdl_0InOptions {} cover_covercells 0 vhdl_warn3 1 vhdl_options {} cover_optlevel 3 voptflow 1 vhdl_warn4 1 ood 0 toggle - vhdl_warn5 1 compile_to work cover_noshort 0 compile_order 2 dont_compile 0 cover_nosub 0 vhdl_use93 2008
|
||||
Project_File_1 = /home/morten/Work/cs-473/lab3/hw/hdl/LCDController/LCDDriver.vhd
|
||||
Project_File_P_1 = vhdl_novitalcheck 0 file_type vhdl group_id 0 cover_nofec 0 vhdl_nodebug 0 vhdl_1164 1 vhdl_noload 0 vhdl_synth 0 vhdl_enable0In 0 folder {Top Level} last_compile 1609269788 vhdl_disableopt 0 vhdl_vital 0 cover_excludedefault 0 vhdl_warn1 1 vhdl_warn2 1 vhdl_explicit 1 vhdl_showsource 0 vhdl_warn3 1 cover_covercells 0 vhdl_0InOptions {} vhdl_warn4 1 voptflow 1 cover_optlevel 3 vhdl_options {} vhdl_warn5 1 toggle - ood 0 cover_noshort 0 compile_to work compile_order 4 cover_nosub 0 dont_compile 0 vhdl_use93 2008
|
||||
Project_File_2 = /home/morten/Work/cs-473/lab3/hw/hdl/LCDController/ClkGen.vhd
|
||||
Project_File_P_2 = vhdl_novitalcheck 0 file_type vhdl group_id 0 cover_nofec 0 vhdl_nodebug 0 vhdl_1164 1 vhdl_noload 0 vhdl_synth 0 vhdl_enable0In 0 folder {Top Level} last_compile 1607688416 vhdl_disableopt 0 vhdl_vital 0 cover_excludedefault 0 vhdl_warn1 1 vhdl_warn2 1 vhdl_explicit 1 vhdl_showsource 0 vhdl_warn3 1 cover_covercells 0 vhdl_0InOptions {} vhdl_warn4 1 voptflow 1 cover_optlevel 3 vhdl_options {} vhdl_warn5 1 toggle - ood 0 cover_noshort 0 compile_to work compile_order 0 cover_nosub 0 dont_compile 0 vhdl_use93 2008
|
||||
Project_File_3 = /home/morten/Work/cs-473/lab3/hw/hdl/LCDController/LCDAvalonMaster.vhd
|
||||
Project_File_P_3 = vhdl_novitalcheck 0 file_type vhdl group_id 0 cover_nofec 0 vhdl_nodebug 0 vhdl_1164 1 vhdl_noload 0 vhdl_synth 0 vhdl_enable0In 0 folder {Top Level} last_compile 1607684735 vhdl_disableopt 0 vhdl_vital 0 cover_excludedefault 0 vhdl_warn1 1 vhdl_warn2 1 vhdl_explicit 1 vhdl_showsource 0 vhdl_warn3 1 cover_covercells 0 vhdl_0InOptions {} vhdl_warn4 1 voptflow 1 cover_optlevel 3 vhdl_options {} vhdl_warn5 1 toggle - ood 0 cover_noshort 0 compile_to work compile_order 1 cover_nosub 0 dont_compile 0 vhdl_use93 2008
|
||||
Project_File_4 = /home/morten/Work/cs-473/lab3/hw/hdl/LCDController/LCDController_tb.vhd
|
||||
Project_File_P_4 = vhdl_novitalcheck 0 file_type vhdl group_id 0 cover_nofec 0 vhdl_nodebug 0 vhdl_1164 1 vhdl_noload 0 vhdl_synth 0 vhdl_enable0In 0 folder {Top Level} last_compile 1609270120 vhdl_disableopt 0 vhdl_vital 0 cover_excludedefault 0 vhdl_warn1 1 vhdl_warn2 1 vhdl_explicit 1 vhdl_showsource 0 vhdl_warn3 1 cover_covercells 0 vhdl_0InOptions {} vhdl_warn4 1 voptflow 1 cover_optlevel 3 vhdl_options {} vhdl_warn5 1 toggle - ood 0 cover_noshort 0 compile_to work compile_order 3 cover_nosub 0 dont_compile 0 vhdl_use93 2008
|
||||
Project_File_5 = /home/morten/Work/cs-473/lab3/hw/hdl/LCDController/LCDDriver_tb.vhd
|
||||
Project_File_P_5 = vhdl_novitalcheck 0 file_type vhdl group_id 0 cover_nofec 0 vhdl_nodebug 0 vhdl_1164 1 vhdl_noload 0 vhdl_synth 0 vhdl_enable0In 0 folder {Top Level} last_compile 1608717413 vhdl_disableopt 0 vhdl_vital 0 cover_excludedefault 0 vhdl_warn1 1 vhdl_warn2 1 vhdl_explicit 1 vhdl_showsource 0 vhdl_warn3 1 cover_covercells 0 vhdl_0InOptions {} vhdl_warn4 1 voptflow 1 cover_optlevel 3 vhdl_options {} vhdl_warn5 1 toggle - ood 0 cover_noshort 0 compile_to work compile_order 5 cover_nosub 0 dont_compile 0 vhdl_use93 2008
|
||||
Project_File_6 = /home/morten/Work/cs-473/lab3/hw/hdl/LCDController/PixTrans.vhd
|
||||
Project_File_P_6 = vhdl_novitalcheck 0 file_type vhdl group_id 0 cover_nofec 0 vhdl_nodebug 0 vhdl_1164 1 vhdl_noload 0 vhdl_synth 0 vhdl_enable0In 0 folder {Top Level} last_compile 1607684735 vhdl_disableopt 0 vhdl_vital 0 cover_excludedefault 0 vhdl_warn1 1 vhdl_warn2 1 vhdl_explicit 1 vhdl_showsource 0 vhdl_warn3 1 cover_covercells 0 vhdl_0InOptions {} vhdl_warn4 1 voptflow 1 cover_optlevel 3 vhdl_options {} vhdl_warn5 1 toggle - ood 0 cover_noshort 0 compile_to work compile_order 6 cover_nosub 0 dont_compile 0 vhdl_use93 2008
|
||||
Project_File_7 = /home/morten/Work/cs-473/lab3/hw/hdl/LCDController/LCDAvalonMaster_tb.vhd
|
||||
Project_File_P_7 = vhdl_novitalcheck 0 file_type vhdl group_id 0 cover_nofec 0 vhdl_nodebug 0 vhdl_1164 1 vhdl_noload 0 vhdl_synth 0 vhdl_enable0In 0 folder {Top Level} last_compile 1607085260 vhdl_disableopt 0 cover_excludedefault 0 vhdl_vital 0 vhdl_warn1 1 vhdl_showsource 0 vhdl_explicit 1 vhdl_warn2 1 vhdl_0InOptions {} cover_covercells 0 vhdl_warn3 1 vhdl_options {} cover_optlevel 3 voptflow 1 vhdl_warn4 1 ood 0 toggle - vhdl_warn5 1 compile_to work cover_noshort 0 compile_order 8 dont_compile 0 cover_nosub 0 vhdl_use93 2002
|
||||
Project_File_8 = /home/morten/Work/cs-473/lab3/hw/hdl/LCDController/PixTrans_tb.vhd
|
||||
Project_File_P_8 = vhdl_novitalcheck 0 file_type vhdl group_id 0 cover_nofec 0 vhdl_nodebug 0 vhdl_1164 1 vhdl_noload 0 vhdl_synth 0 vhdl_enable0In 0 folder {Top Level} last_compile 1607076300 vhdl_disableopt 0 cover_excludedefault 0 vhdl_vital 0 vhdl_warn1 1 vhdl_showsource 0 vhdl_explicit 1 vhdl_warn2 1 vhdl_0InOptions {} cover_covercells 0 vhdl_warn3 1 vhdl_options {} cover_optlevel 3 voptflow 1 vhdl_warn4 1 ood 0 toggle - vhdl_warn5 1 compile_to work cover_noshort 0 compile_order 7 dont_compile 0 cover_nosub 0 vhdl_use93 2002
|
||||
Project_Sim_Count = 0
|
||||
Project_Folder_Count = 0
|
||||
Echo_Compile_Output = 0
|
||||
Save_Compile_Report = 1
|
||||
Project_Opt_Count = 0
|
||||
ForceSoftPaths = 0
|
||||
ProjectStatusDelay = 5000
|
||||
VERILOG_DoubleClick = Edit
|
||||
VERILOG_CustomDoubleClick =
|
||||
SYSTEMVERILOG_DoubleClick = Edit
|
||||
SYSTEMVERILOG_CustomDoubleClick =
|
||||
VHDL_DoubleClick = Edit
|
||||
VHDL_CustomDoubleClick =
|
||||
PSL_DoubleClick = Edit
|
||||
PSL_CustomDoubleClick =
|
||||
TEXT_DoubleClick = Edit
|
||||
TEXT_CustomDoubleClick =
|
||||
SYSTEMC_DoubleClick = Edit
|
||||
SYSTEMC_CustomDoubleClick =
|
||||
TCL_DoubleClick = Edit
|
||||
TCL_CustomDoubleClick =
|
||||
MACRO_DoubleClick = Edit
|
||||
MACRO_CustomDoubleClick =
|
||||
VCD_DoubleClick = Edit
|
||||
VCD_CustomDoubleClick =
|
||||
SDF_DoubleClick = Edit
|
||||
SDF_CustomDoubleClick =
|
||||
XML_DoubleClick = Edit
|
||||
XML_CustomDoubleClick =
|
||||
LOGFILE_DoubleClick = Edit
|
||||
LOGFILE_CustomDoubleClick =
|
||||
UCDB_DoubleClick = Edit
|
||||
UCDB_CustomDoubleClick =
|
||||
TDB_DoubleClick = Edit
|
||||
TDB_CustomDoubleClick =
|
||||
UPF_DoubleClick = Edit
|
||||
UPF_CustomDoubleClick =
|
||||
PCF_DoubleClick = Edit
|
||||
PCF_CustomDoubleClick =
|
||||
PROJECT_DoubleClick = Edit
|
||||
PROJECT_CustomDoubleClick =
|
||||
VRM_DoubleClick = Edit
|
||||
VRM_CustomDoubleClick =
|
||||
DEBUGDATABASE_DoubleClick = Edit
|
||||
DEBUGDATABASE_CustomDoubleClick =
|
||||
DEBUGARCHIVE_DoubleClick = Edit
|
||||
DEBUGARCHIVE_CustomDoubleClick =
|
||||
Project_Major_Version = 10
|
||||
Project_Minor_Version = 5
|
54
cs473-es/lab3/hw/quartus/.gitignore
vendored
Normal file
54
cs473-es/lab3/hw/quartus/.gitignore
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
system/**/*
|
||||
|
||||
# A gitignore for Altera Quartus II that tries to ignore almost all of the
|
||||
# automatically Quartus-generated files. This primarily leaves the project,
|
||||
# settings, source, and constraint files to be added. The files ignored do not
|
||||
# include the bulk of the MegaFunction Wizard generated files which enables
|
||||
# a cloned repository to be used (usually) immediately without regenerating
|
||||
# Altera IP blocks.
|
||||
|
||||
# Need to keep all HDL files and timing constraint files
|
||||
# *.vhd
|
||||
# *.v
|
||||
# *.sdc
|
||||
|
||||
# ignore Quartus II generated folders
|
||||
*_sim
|
||||
db
|
||||
greybox_tmp
|
||||
incremental_db
|
||||
simulation
|
||||
testbench
|
||||
timing
|
||||
synthesis
|
||||
.qsys_edit
|
||||
|
||||
# ignore Quartus II generated files
|
||||
*_generation_script*
|
||||
*_inst.vhd
|
||||
*.bak
|
||||
*.cmp
|
||||
*.done
|
||||
*.eqn
|
||||
*.hex
|
||||
*.html
|
||||
*.jdi
|
||||
*.jpg
|
||||
*.mif
|
||||
*.pin
|
||||
*.pof
|
||||
*.ptf.*
|
||||
*.qar
|
||||
*.qarlog
|
||||
*.qws
|
||||
*.rpt
|
||||
*.smsg
|
||||
*.sof
|
||||
*.sopc_builder
|
||||
*.summary
|
||||
*.tcl
|
||||
*.txt # Explicitly add any text files used
|
||||
*~
|
||||
*example*
|
||||
*sopc_*
|
||||
PLLJ_PLLSPE_INFO.txt # The generated PLL specification file
|
94
cs473-es/lab3/hw/quartus/c5_pin_model_dump.txt
Normal file
94
cs473-es/lab3/hw/quartus/c5_pin_model_dump.txt
Normal file
@@ -0,0 +1,94 @@
|
||||
io_4iomodule_c5_index: 42gpio_index: 2
|
||||
io_4iomodule_c5_index: 41gpio_index: 369
|
||||
io_4iomodule_c5_index: 27gpio_index: 6
|
||||
io_4iomodule_c5_index: 1gpio_index: 365
|
||||
io_4iomodule_c5_index: 22gpio_index: 10
|
||||
io_4iomodule_c5_index: 6gpio_index: 361
|
||||
io_4iomodule_c5_index: 28gpio_index: 14
|
||||
io_4iomodule_c5_index: 24gpio_index: 357
|
||||
io_4iomodule_c5_index: 21gpio_index: 19
|
||||
io_4iomodule_c5_index: 25gpio_index: 353
|
||||
io_4iomodule_c5_index: 23gpio_index: 22
|
||||
io_4iomodule_c5_index: 15gpio_index: 349
|
||||
io_4iomodule_c5_index: 13gpio_index: 27
|
||||
io_4iomodule_c5_index: 34gpio_index: 345
|
||||
io_4iomodule_c5_index: 39gpio_index: 30
|
||||
io_4iomodule_c5_index: 19gpio_index: 341
|
||||
io_4iomodule_c5_index: 5gpio_index: 35
|
||||
io_4iomodule_c5_index: 10gpio_index: 337
|
||||
io_4iomodule_c5_index: 9gpio_index: 38
|
||||
io_4iomodule_c5_index: 36gpio_index: 333
|
||||
io_4iomodule_c5_index: 17gpio_index: 43
|
||||
io_4iomodule_c5_index: 40gpio_index: 329
|
||||
io_4iomodule_c5_index: 16gpio_index: 46
|
||||
io_4iomodule_c5_index: 43gpio_index: 325
|
||||
io_4iomodule_a_index: 13gpio_index: 321
|
||||
io_4iomodule_c5_index: 2gpio_index: 51
|
||||
io_4iomodule_a_index: 15gpio_index: 317
|
||||
io_4iomodule_a_index: 8gpio_index: 313
|
||||
io_4iomodule_c5_index: 32gpio_index: 54
|
||||
io_4iomodule_a_index: 5gpio_index: 309
|
||||
io_4iomodule_c5_index: 8gpio_index: 59
|
||||
io_4iomodule_a_index: 11gpio_index: 305
|
||||
io_4iomodule_c5_index: 4gpio_index: 62
|
||||
io_4iomodule_a_index: 3gpio_index: 301
|
||||
io_4iomodule_c5_index: 30gpio_index: 67
|
||||
io_4iomodule_a_index: 7gpio_index: 297
|
||||
io_4iomodule_c5_index: 0gpio_index: 70
|
||||
io_4iomodule_a_index: 0gpio_index: 293
|
||||
io_4iomodule_c5_index: 31gpio_index: 75
|
||||
io_4iomodule_a_index: 12gpio_index: 289
|
||||
io_4iomodule_c5_index: 26gpio_index: 78
|
||||
io_4iomodule_a_index: 4gpio_index: 285
|
||||
io_4iomodule_a_index: 10gpio_index: 281
|
||||
io_4iomodule_c5_index: 3gpio_index: 83
|
||||
io_4iomodule_a_index: 16gpio_index: 277
|
||||
io_4iomodule_c5_index: 18gpio_index: 86
|
||||
io_4iomodule_c5_index: 37gpio_index: 91
|
||||
io_4iomodule_a_index: 14gpio_index: 273
|
||||
io_4iomodule_a_index: 1gpio_index: 269
|
||||
io_4iomodule_c5_index: 33gpio_index: 94
|
||||
io_4iomodule_c5_index: 20gpio_index: 99
|
||||
io_4iomodule_a_index: 2gpio_index: 265
|
||||
io_4iomodule_c5_index: 7gpio_index: 102
|
||||
io_4iomodule_a_index: 9gpio_index: 261
|
||||
io_4iomodule_a_index: 6gpio_index: 257
|
||||
io_4iomodule_c5_index: 11gpio_index: 107
|
||||
io_4iomodule_a_index: 17gpio_index: 253
|
||||
io_4iomodule_c5_index: 38gpio_index: 110
|
||||
io_4iomodule_c5_index: 14gpio_index: 115
|
||||
io_4iomodule_c5_index: 29gpio_index: 118
|
||||
io_4iomodule_c5_index: 12gpio_index: 123
|
||||
io_4iomodule_c5_index: 35gpio_index: 126
|
||||
io_4iomodule_h_c5_index: 0gpio_index: 129
|
||||
io_4iomodule_h_c5_index: 1gpio_index: 133
|
||||
io_4iomodule_h_c5_index: 3gpio_index: 137
|
||||
io_4iomodule_h_c5_index: 2gpio_index: 141
|
||||
io_4iomodule_h_index: 20gpio_index: 144
|
||||
io_4iomodule_h_index: 24gpio_index: 148
|
||||
io_4iomodule_h_index: 12gpio_index: 152
|
||||
io_4iomodule_h_index: 10gpio_index: 156
|
||||
io_4iomodule_h_index: 0gpio_index: 160
|
||||
io_4iomodule_vref_h_index: 0gpio_index: 164
|
||||
io_4iomodule_h_index: 22gpio_index: 167
|
||||
io_4iomodule_h_index: 6gpio_index: 171
|
||||
io_4iomodule_h_index: 16gpio_index: 175
|
||||
io_4iomodule_h_index: 2gpio_index: 179
|
||||
io_4iomodule_h_index: 5gpio_index: 183
|
||||
io_4iomodule_h_index: 3gpio_index: 187
|
||||
io_4iomodule_h_index: 14gpio_index: 191
|
||||
io_4iomodule_h_index: 7gpio_index: 195
|
||||
io_4iomodule_h_index: 18gpio_index: 199
|
||||
io_4iomodule_h_index: 11gpio_index: 203
|
||||
io_4iomodule_h_index: 9gpio_index: 207
|
||||
io_4iomodule_h_index: 13gpio_index: 211
|
||||
io_4iomodule_h_index: 23gpio_index: 215
|
||||
io_4iomodule_vref_h_index: 1gpio_index: 219
|
||||
io_4iomodule_h_index: 21gpio_index: 222
|
||||
io_4iomodule_h_index: 8gpio_index: 226
|
||||
io_4iomodule_h_index: 25gpio_index: 230
|
||||
io_4iomodule_h_index: 1gpio_index: 234
|
||||
io_4iomodule_h_index: 15gpio_index: 238
|
||||
io_4iomodule_h_index: 19gpio_index: 242
|
||||
io_4iomodule_h_index: 17gpio_index: 246
|
||||
io_4iomodule_h_index: 4gpio_index: 250
|
@@ -0,0 +1,147 @@
|
||||
//--------------------------------------------------------------------------//
|
||||
// Title: de0_nano_soc_baseline.v //
|
||||
// Rev: Rev 0.1 //
|
||||
// Last Revised: 09/14/2015 //
|
||||
//--------------------------------------------------------------------------//
|
||||
// Description: Baseline design file contains DE0 Nano SoC //
|
||||
// Board pins and I/O Standards. //
|
||||
//--------------------------------------------------------------------------//
|
||||
//Copyright 2015 Altera Corporation. All rights reserved. Altera products
|
||||
//are protected under numerous U.S. and foreign patents, maskwork rights,
|
||||
//copyrights and other intellectual property laws.
|
||||
//
|
||||
//This reference design file, and your use thereof, is subject to and
|
||||
//governed by the terms and conditions of the applicable Altera Reference
|
||||
//Design License Agreement. By using this reference design file, you
|
||||
//indicate your acceptance of such terms and conditions between you and
|
||||
//Altera Corporation. In the event that you do not agree with such terms and
|
||||
//conditions, you may not use the reference design file. Please promptly
|
||||
//destroy any copies you have made.
|
||||
//
|
||||
//This reference design file being provided on an "as-is" basis and as an
|
||||
//accommodation and therefore all warranties, representations or guarantees
|
||||
//of any kind (whether express, implied or statutory) including, without
|
||||
//limitation, warranties of merchantability, non-infringement, or fitness for
|
||||
//a particular purpose, are specifically disclaimed. By making this
|
||||
//reference design file available, Altera expressly does not recommend,
|
||||
//suggest or require that this reference design file be used in combination
|
||||
//with any other product not provided by Altera
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
//Group Enable Definitions
|
||||
//This lists every pinout group
|
||||
//Users can enable any group by uncommenting the corresponding line below:
|
||||
//`define enable_ADC
|
||||
//`define enable_ARDUINO
|
||||
//`define enable_GPIO0
|
||||
//`define enable_GPIO1
|
||||
//`define enable_HPS
|
||||
|
||||
module de0_nano_soc_baseline(
|
||||
|
||||
|
||||
//////////// CLOCK //////////
|
||||
input FPGA_CLK_50,
|
||||
input FPGA_CLK2_50,
|
||||
input FPGA_CLK3_50,
|
||||
|
||||
`ifdef enable_ADC
|
||||
//////////// ADC //////////
|
||||
/* 3.3-V LVTTL */
|
||||
output ADC_CONVST,
|
||||
output ADC_SCLK,
|
||||
output ADC_SDI,
|
||||
input ADC_SDO,
|
||||
`endif
|
||||
|
||||
`ifdef enable_ARDUINO
|
||||
//////////// ARDUINO ////////////
|
||||
/* 3.3-V LVTTL */
|
||||
inout [15:0] ARDUINO_IO,
|
||||
inout ARDUINO_RESET_N,
|
||||
`endif
|
||||
|
||||
`ifdef enable_GPIO0
|
||||
//////////// GPIO 0 ////////////
|
||||
/* 3.3-V LVTTL */
|
||||
inout [35:0] GPIO_0,
|
||||
`endif
|
||||
|
||||
`ifdef enable_GPIO1
|
||||
//////////// GPIO 1 ////////////
|
||||
/* 3.3-V LVTTL */
|
||||
inout [35:0] GPIO_1,
|
||||
`endif
|
||||
|
||||
`ifdef enable_HPS
|
||||
//////////// HPS //////////
|
||||
/* 3.3-V LVTTL */
|
||||
inout HPS_CONV_USB_N,
|
||||
|
||||
/* SSTL-15 Class I */
|
||||
output [14:0] HPS_DDR3_ADDR,
|
||||
output [2:0] HPS_DDR3_BA,
|
||||
output HPS_DDR3_CAS_N,
|
||||
output HPS_DDR3_CKE,
|
||||
output HPS_DDR3_CS_N,
|
||||
output [3:0] HPS_DDR3_DM,
|
||||
inout [31:0] HPS_DDR3_DQ,
|
||||
output HPS_DDR3_ODT,
|
||||
output HPS_DDR3_RAS_N,
|
||||
output HPS_DDR3_RESET_N,
|
||||
input HPS_DDR3_RZQ,
|
||||
output HPS_DDR3_WE_N,
|
||||
/* DIFFERENTIAL 1.5-V SSTL CLASS I */
|
||||
output HPS_DDR3_CK_N,
|
||||
output HPS_DDR3_CK_P,
|
||||
inout [3:0] HPS_DDR3_DQS_N,
|
||||
inout [3:0] HPS_DDR3_DQS_P,
|
||||
|
||||
/* 3.3-V LVTTL */
|
||||
output HPS_ENET_GTX_CLK,
|
||||
inout HPS_ENET_INT_N,
|
||||
output HPS_ENET_MDC,
|
||||
inout HPS_ENET_MDIO,
|
||||
input HPS_ENET_RX_CLK,
|
||||
input [3:0] HPS_ENET_RX_DATA,
|
||||
input HPS_ENET_RX_DV,
|
||||
output [3:0] HPS_ENET_TX_DATA,
|
||||
output HPS_ENET_TX_EN,
|
||||
inout HPS_GSENSOR_INT,
|
||||
inout HPS_I2C0_SCLK,
|
||||
inout HPS_I2C0_SDAT,
|
||||
inout HPS_I2C1_SCLK,
|
||||
inout HPS_I2C1_SDAT,
|
||||
inout HPS_KEY,
|
||||
inout HPS_LED,
|
||||
inout HPS_LTC_GPIO,
|
||||
output HPS_SD_CLK,
|
||||
inout HPS_SD_CMD,
|
||||
inout [3:0] HPS_SD_DATA,
|
||||
output HPS_SPIM_CLK,
|
||||
input HPS_SPIM_MISO,
|
||||
output HPS_SPIM_MOSI,
|
||||
inout HPS_SPIM_SS,
|
||||
input HPS_UART_RX,
|
||||
output HPS_UART_TX,
|
||||
input HPS_USB_CLKOUT,
|
||||
inout [7:0] HPS_USB_DATA,
|
||||
input HPS_USB_DIR,
|
||||
input HPS_USB_NXT,
|
||||
output HPS_USB_STP,
|
||||
`endif
|
||||
|
||||
//////////// KEY ////////////
|
||||
/* 3.3-V LVTTL */
|
||||
input [1:0] KEY,
|
||||
|
||||
//////////// LED ////////////
|
||||
/* 3.3-V LVTTL */
|
||||
output [7:0] LED,
|
||||
|
||||
//////////// SW ////////////
|
||||
/* 3.3-V LVTTL */
|
||||
input [3:0] SW
|
||||
|
||||
);
|
||||
endmodule
|
@@ -0,0 +1,4 @@
|
||||
platform_setup.tcl
|
||||
filelist.txt
|
||||
de0_nano_soc_baseline.v
|
||||
de0_nano_soc_baseline.v
|
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"common_dir" : "/data/adu/17.0/Lite/CycloneV/Atlas_SoC_DE0_Nano/de0_nano_soc_baseline_project/",
|
||||
"acds_version" : "Version 17.0.0",
|
||||
"platform" : "linux",
|
||||
"os" : "Red Hat"
|
||||
}
|
8
cs473-es/lab3/hw/quartus/devkits/readme.txt
Normal file
8
cs473-es/lab3/hw/quartus/devkits/readme.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
This devkits directory contains development kit baseline example designs.
|
||||
|
||||
HOW TO SETUP PIN ASSIGNMENTS
|
||||
1) Bring up the Tcl Console panel in Quartus from the View menu --> Utility Windows.
|
||||
2) Type command 'source platform_setup.tcl' in the Tcl console.
|
||||
3) Type command 'setup_project' in the Tcl console.
|
||||
- Running this command will populate all assignments available in the setup_platform.tcl to your project QSF file.
|
||||
|
30
cs473-es/lab3/hw/quartus/lab3.qpf
Normal file
30
cs473-es/lab3/hw/quartus/lab3.qpf
Normal file
@@ -0,0 +1,30 @@
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Copyright (C) 2018 Intel Corporation. All rights reserved.
|
||||
# Your use of Intel Corporation's design tools, logic functions
|
||||
# and other software and tools, and its AMPP partner logic
|
||||
# functions, and any output files from any of the foregoing
|
||||
# (including device programming or simulation files), and any
|
||||
# associated documentation or information are expressly subject
|
||||
# to the terms and conditions of the Intel Program License
|
||||
# Subscription Agreement, the Intel Quartus Prime License Agreement,
|
||||
# the Intel FPGA IP License Agreement, or other applicable license
|
||||
# agreement, including, without limitation, that your use is for
|
||||
# the sole purpose of programming logic devices manufactured by
|
||||
# Intel and sold by Intel or its authorized distributors. Please
|
||||
# refer to the applicable agreement for further details.
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Quartus Prime
|
||||
# Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition
|
||||
# Date created = 14:31:51 November 25, 2020
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
QUARTUS_VERSION = "18.1"
|
||||
DATE = "14:31:51 November 25, 2020"
|
||||
|
||||
# Revisions
|
||||
|
||||
PROJECT_REVISION = "lab3"
|
969
cs473-es/lab3/hw/quartus/lab3.qsf
Normal file
969
cs473-es/lab3/hw/quartus/lab3.qsf
Normal file
@@ -0,0 +1,969 @@
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Copyright (C) 2018 Intel Corporation. All rights reserved.
|
||||
# Your use of Intel Corporation's design tools, logic functions
|
||||
# and other software and tools, and its AMPP partner logic
|
||||
# functions, and any output files from any of the foregoing
|
||||
# (including device programming or simulation files), and any
|
||||
# associated documentation or information are expressly subject
|
||||
# to the terms and conditions of the Intel Program License
|
||||
# Subscription Agreement, the Intel Quartus Prime License Agreement,
|
||||
# the Intel FPGA IP License Agreement, or other applicable license
|
||||
# agreement, including, without limitation, that your use is for
|
||||
# the sole purpose of programming logic devices manufactured by
|
||||
# Intel and sold by Intel or its authorized distributors. Please
|
||||
# refer to the applicable agreement for further details.
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Quartus Prime
|
||||
# Version 18.1.0 Build 625 09/12/2018 SJ Lite Edition
|
||||
# Date created = 14:31:51 November 25, 2020
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
#
|
||||
# Notes:
|
||||
#
|
||||
# 1) The default values for assignments are stored in the file:
|
||||
# lab3_assignment_defaults.qdf
|
||||
# If this file doesn't exist, see file:
|
||||
# assignment_defaults.qdf
|
||||
#
|
||||
# 2) Altera recommends that you do not modify this file. This
|
||||
# file is updated automatically by the Quartus Prime software
|
||||
# and any changes you make may be lost or overwritten.
|
||||
#
|
||||
# -------------------------------------------------------------------------- #
|
||||
|
||||
|
||||
set_global_assignment -name FAMILY "Cyclone V"
|
||||
set_global_assignment -name DEVICE 5CSEMA4U23C6
|
||||
set_global_assignment -name TOP_LEVEL_ENTITY DE0_Nano_SoC_LT24_top_level
|
||||
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 18.1.0
|
||||
set_global_assignment -name PROJECT_CREATION_TIME_DATE "14:31:51 NOVEMBER 25, 2020"
|
||||
set_global_assignment -name LAST_QUARTUS_VERSION "18.1.0 Lite Edition"
|
||||
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
|
||||
set_global_assignment -name BOARD "Atlas-SoC (DE0-Nano-SoC)"
|
||||
set_global_assignment -name EDA_SIMULATION_TOOL "ModelSim-Altera (VHDL)"
|
||||
set_global_assignment -name EDA_TIME_SCALE "1 ps" -section_id eda_simulation
|
||||
set_global_assignment -name EDA_OUTPUT_DATA_FORMAT VHDL -section_id eda_simulation
|
||||
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
|
||||
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
|
||||
set_global_assignment -name POWER_PRESET_COOLING_SOLUTION "23 MM HEAT SINK WITH 200 LFPM AIRFLOW"
|
||||
set_global_assignment -name POWER_BOARD_THERMAL_MODEL "NONE (CONSERVATIVE)"
|
||||
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
|
||||
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
|
||||
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
|
||||
set_global_assignment -name VHDL_INPUT_VERSION VHDL_2008
|
||||
set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_RZQ
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[0]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[1]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[2]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[3]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[4]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[4] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[4] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[5]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[5] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[5] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[6]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[6] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[6] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[7]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[7] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[7] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[8]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[8] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[8] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[9]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[9] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[9] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[10]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[10] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[10] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[11]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[11] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[11] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[12]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[12] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[12] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[13]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[13] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[13] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[14]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[14] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[14] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[15]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[15] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[15] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[16]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[16] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[16] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[17]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[17] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[17] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[18]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[18] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[18] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[19]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[19] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[19] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[20]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[20] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[20] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[21]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[21] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[21] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[22]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[22] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[22] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[23]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[23] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[23] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[24]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[24] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[24] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[25]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[25] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[25] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[26]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[26] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[26] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[27]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[27] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[27] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[28]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[28] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[28] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[29]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[29] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[29] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[30]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[30] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[30] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ[31]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[31] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQ[31] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P[0]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_P[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_P[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P[1]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_P[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_P[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P[2]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_P[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_P[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P[3]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_P[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_P[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N[0]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_N[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_N[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N[1]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_N[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_N[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N[2]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_N[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_N[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N[3]
|
||||
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_N[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DQS_N[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_CK_P
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITHOUT CALIBRATION" -to HPS_DDR3_CK_P -tag __hps_sdram_p0
|
||||
set_instance_assignment -name D5_DELAY 2 -to HPS_DDR3_CK_P -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_CK_N
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITHOUT CALIBRATION" -to HPS_DDR3_CK_N -tag __hps_sdram_p0
|
||||
set_instance_assignment -name D5_DELAY 2 -to HPS_DDR3_CK_N -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[0]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[10]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[10] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[11]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[11] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[12]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[12] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[13]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[13] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[14]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[14] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[1]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[2]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[3]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[4]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[4] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[5]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[5] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[6]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[6] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[7]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[7] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[8]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[8] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR[9]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ADDR[9] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_BA[0]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_BA[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_BA[1]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_BA[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_BA[2]
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_BA[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_CAS_N
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_CAS_N -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_CKE
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_CKE -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_CS_N
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_CS_N -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ODT
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_ODT -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_RAS_N
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_RAS_N -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_WE_N
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_WE_N -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_RESET_N
|
||||
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HPS_DDR3_RESET_N -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM[0]
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DM[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM[1]
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DM[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM[2]
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DM[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM[3]
|
||||
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to HPS_DDR3_DM[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[4] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[5] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[6] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[7] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[8] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[9] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[10] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[11] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[12] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[13] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[14] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[15] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[16] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[17] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[18] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[19] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[20] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[21] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[22] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[23] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[24] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[25] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[26] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[27] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[28] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[29] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[30] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQ[31] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DM[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DM[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DM[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DM[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQS_P[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQS_P[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQS_P[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQS_P[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQS_N[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQS_N[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQS_N[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_DQS_N[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[10] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[11] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[12] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[13] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[14] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[4] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[5] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[6] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[7] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[8] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ADDR[9] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_BA[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_BA[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_BA[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_CAS_N -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_CKE -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_CS_N -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_ODT -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_RAS_N -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_WE_N -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_RESET_N -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_CK_P -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PACKAGE_SKEW_COMPENSATION OFF -to HPS_DDR3_CK_N -tag __hps_sdram_p0
|
||||
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u0|hps_0|hps_io|border|hps_sdram_inst|p0|umemphy|ureset|phy_reset_mem_stable_n -tag __hps_sdram_p0
|
||||
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u0|hps_0|hps_io|border|hps_sdram_inst|p0|umemphy|ureset|phy_reset_n -tag __hps_sdram_p0
|
||||
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u0|hps_0|hps_io|border|hps_sdram_inst|p0|umemphy|uio_pads|dq_ddio[0].read_capture_clk_buffer -tag __hps_sdram_p0
|
||||
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u0|hps_0|hps_io|border|hps_sdram_inst|p0|umemphy|uread_datapath|reset_n_fifo_write_side[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u0|hps_0|hps_io|border|hps_sdram_inst|p0|umemphy|uread_datapath|reset_n_fifo_wraddress[0] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u0|hps_0|hps_io|border|hps_sdram_inst|p0|umemphy|uio_pads|dq_ddio[1].read_capture_clk_buffer -tag __hps_sdram_p0
|
||||
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u0|hps_0|hps_io|border|hps_sdram_inst|p0|umemphy|uread_datapath|reset_n_fifo_write_side[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u0|hps_0|hps_io|border|hps_sdram_inst|p0|umemphy|uread_datapath|reset_n_fifo_wraddress[1] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u0|hps_0|hps_io|border|hps_sdram_inst|p0|umemphy|uio_pads|dq_ddio[2].read_capture_clk_buffer -tag __hps_sdram_p0
|
||||
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u0|hps_0|hps_io|border|hps_sdram_inst|p0|umemphy|uread_datapath|reset_n_fifo_write_side[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u0|hps_0|hps_io|border|hps_sdram_inst|p0|umemphy|uread_datapath|reset_n_fifo_wraddress[2] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u0|hps_0|hps_io|border|hps_sdram_inst|p0|umemphy|uio_pads|dq_ddio[3].read_capture_clk_buffer -tag __hps_sdram_p0
|
||||
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u0|hps_0|hps_io|border|hps_sdram_inst|p0|umemphy|uread_datapath|reset_n_fifo_write_side[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name GLOBAL_SIGNAL OFF -to u0|hps_0|hps_io|border|hps_sdram_inst|p0|umemphy|uread_datapath|reset_n_fifo_wraddress[3] -tag __hps_sdram_p0
|
||||
set_instance_assignment -name ENABLE_BENEFICIAL_SKEW_OPTIMIZATION_FOR_NON_GLOBAL_CLOCKS ON -to u0|hps_0|hps_io|border|hps_sdram_inst -tag __hps_sdram_p0
|
||||
set_instance_assignment -name PLL_COMPENSATION_MODE DIRECT -to u0|hps_0|hps_io|border|hps_sdram_inst|pll0|fbout -tag __hps_sdram_p0
|
||||
set_global_assignment -name USE_DLL_FREQUENCY_FOR_DQS_DELAY_CHAIN ON
|
||||
set_global_assignment -name UNIPHY_SEQUENCER_DQS_CONFIG_ENABLE ON
|
||||
set_global_assignment -name OPTIMIZE_MULTI_CORNER_TIMING ON
|
||||
set_global_assignment -name ECO_REGENERATE_REPORT ON
|
||||
set_global_assignment -name DEVICE_FILTER_PACKAGE UFBGA
|
||||
set_global_assignment -name DEVICE_FILTER_PIN_COUNT 896
|
||||
set_global_assignment -name DEVICE_FILTER_SPEED_GRADE 6
|
||||
set_location_assignment PIN_U9 -to ADC_CONVST
|
||||
set_location_assignment PIN_V10 -to ADC_SCK
|
||||
set_location_assignment PIN_AC4 -to ADC_SDI
|
||||
set_location_assignment PIN_AD4 -to ADC_SDO
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_CONVST
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_SCK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_SDI
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ADC_SDO
|
||||
set_location_assignment PIN_AG13 -to ARDUINO_IO[0]
|
||||
set_location_assignment PIN_AG13 -to ARDUINO_IO_0
|
||||
set_location_assignment PIN_AF13 -to ARDUINO_IO[1]
|
||||
set_location_assignment PIN_AF13 -to ARDUINO_IO_1
|
||||
set_location_assignment PIN_AG10 -to ARDUINO_IO[2]
|
||||
set_location_assignment PIN_AG10 -to ARDUINO_IO_2
|
||||
set_location_assignment PIN_AG9 -to ARDUINO_IO[3]
|
||||
set_location_assignment PIN_AG9 -to ARDUINO_IO_3
|
||||
set_location_assignment PIN_U14 -to ARDUINO_IO[4]
|
||||
set_location_assignment PIN_U14 -to ARDUINO_IO_4
|
||||
set_location_assignment PIN_U13 -to ARDUINO_IO[5]
|
||||
set_location_assignment PIN_U13 -to ARDUINO_IO_5
|
||||
set_location_assignment PIN_AG8 -to ARDUINO_IO[6]
|
||||
set_location_assignment PIN_AG8 -to ARDUINO_IO_6
|
||||
set_location_assignment PIN_AH8 -to ARDUINO_IO[7]
|
||||
set_location_assignment PIN_AH8 -to ARDUINO_IO_7
|
||||
set_location_assignment PIN_AF17 -to ARDUINO_IO[8]
|
||||
set_location_assignment PIN_AF17 -to ARDUINO_IO_8
|
||||
set_location_assignment PIN_AE15 -to ARDUINO_IO[9]
|
||||
set_location_assignment PIN_AE15 -to ARDUINO_IO_9
|
||||
set_location_assignment PIN_AF15 -to ARDUINO_IO[10]
|
||||
set_location_assignment PIN_AF15 -to ARDUINO_IO_10
|
||||
set_location_assignment PIN_AG16 -to ARDUINO_IO[11]
|
||||
set_location_assignment PIN_AG16 -to ARDUINO_IO_11
|
||||
set_location_assignment PIN_AH11 -to ARDUINO_IO[12]
|
||||
set_location_assignment PIN_AH11 -to ARDUINO_IO_12
|
||||
set_location_assignment PIN_AH12 -to ARDUINO_IO[13]
|
||||
set_location_assignment PIN_AH12 -to ARDUINO_IO_13
|
||||
set_location_assignment PIN_AH9 -to ARDUINO_IO[14]
|
||||
set_location_assignment PIN_AH9 -to ARDUINO_IO_14
|
||||
set_location_assignment PIN_AG11 -to ARDUINO_IO[15]
|
||||
set_location_assignment PIN_AG11 -to ARDUINO_IO_15
|
||||
set_location_assignment PIN_AH7 -to ARDUINO_RESET_N
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[4]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_4
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[5]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_5
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[6]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_6
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[7]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_7
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[8]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_8
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[9]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_9
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[10]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_10
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[11]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_11
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[12]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_12
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[13]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_13
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[14]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_14
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO[15]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_IO_15
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to ARDUINO_RESET_N
|
||||
set_location_assignment PIN_V11 -to FPGA_CLK1_50
|
||||
set_location_assignment PIN_Y13 -to FPGA_CLK2_50
|
||||
set_location_assignment PIN_E11 -to FPGA_CLK3_50
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FPGA_CLK1_50
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FPGA_CLK2_50
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to FPGA_CLK3_50
|
||||
set_location_assignment PIN_C6 -to HPS_CONV_USB_N
|
||||
set_location_assignment PIN_C28 -to HPS_DDR3_ADDR[0]
|
||||
set_location_assignment PIN_C28 -to HPS_DDR3_ADDR_0
|
||||
set_location_assignment PIN_B28 -to HPS_DDR3_ADDR[1]
|
||||
set_location_assignment PIN_B28 -to HPS_DDR3_ADDR_1
|
||||
set_location_assignment PIN_E26 -to HPS_DDR3_ADDR[2]
|
||||
set_location_assignment PIN_E26 -to HPS_DDR3_ADDR_2
|
||||
set_location_assignment PIN_D26 -to HPS_DDR3_ADDR[3]
|
||||
set_location_assignment PIN_D26 -to HPS_DDR3_ADDR_3
|
||||
set_location_assignment PIN_J21 -to HPS_DDR3_ADDR[4]
|
||||
set_location_assignment PIN_J21 -to HPS_DDR3_ADDR_4
|
||||
set_location_assignment PIN_J20 -to HPS_DDR3_ADDR[5]
|
||||
set_location_assignment PIN_J20 -to HPS_DDR3_ADDR_5
|
||||
set_location_assignment PIN_C26 -to HPS_DDR3_ADDR[6]
|
||||
set_location_assignment PIN_C26 -to HPS_DDR3_ADDR_6
|
||||
set_location_assignment PIN_B26 -to HPS_DDR3_ADDR[7]
|
||||
set_location_assignment PIN_B26 -to HPS_DDR3_ADDR_7
|
||||
set_location_assignment PIN_F26 -to HPS_DDR3_ADDR[8]
|
||||
set_location_assignment PIN_F26 -to HPS_DDR3_ADDR_8
|
||||
set_location_assignment PIN_F25 -to HPS_DDR3_ADDR[9]
|
||||
set_location_assignment PIN_F25 -to HPS_DDR3_ADDR_9
|
||||
set_location_assignment PIN_A24 -to HPS_DDR3_ADDR[10]
|
||||
set_location_assignment PIN_A24 -to HPS_DDR3_ADDR_10
|
||||
set_location_assignment PIN_B24 -to HPS_DDR3_ADDR[11]
|
||||
set_location_assignment PIN_B24 -to HPS_DDR3_ADDR_11
|
||||
set_location_assignment PIN_D24 -to HPS_DDR3_ADDR[12]
|
||||
set_location_assignment PIN_D24 -to HPS_DDR3_ADDR_12
|
||||
set_location_assignment PIN_C24 -to HPS_DDR3_ADDR[13]
|
||||
set_location_assignment PIN_C24 -to HPS_DDR3_ADDR_13
|
||||
set_location_assignment PIN_G23 -to HPS_DDR3_ADDR[14]
|
||||
set_location_assignment PIN_G23 -to HPS_DDR3_ADDR_14
|
||||
set_location_assignment PIN_A27 -to HPS_DDR3_BA[0]
|
||||
set_location_assignment PIN_A27 -to HPS_DDR3_BA_0
|
||||
set_location_assignment PIN_H25 -to HPS_DDR3_BA[1]
|
||||
set_location_assignment PIN_H25 -to HPS_DDR3_BA_1
|
||||
set_location_assignment PIN_G25 -to HPS_DDR3_BA[2]
|
||||
set_location_assignment PIN_G25 -to HPS_DDR3_BA_2
|
||||
set_location_assignment PIN_A26 -to HPS_DDR3_CAS_N
|
||||
set_location_assignment PIN_L28 -to HPS_DDR3_CKE
|
||||
set_location_assignment PIN_N20 -to HPS_DDR3_CK_N
|
||||
set_location_assignment PIN_N21 -to HPS_DDR3_CK_P
|
||||
set_location_assignment PIN_L21 -to HPS_DDR3_CS_N
|
||||
set_location_assignment PIN_G28 -to HPS_DDR3_DM[0]
|
||||
set_location_assignment PIN_G28 -to HPS_DDR3_DM_0
|
||||
set_location_assignment PIN_P28 -to HPS_DDR3_DM[1]
|
||||
set_location_assignment PIN_P28 -to HPS_DDR3_DM_1
|
||||
set_location_assignment PIN_W28 -to HPS_DDR3_DM[2]
|
||||
set_location_assignment PIN_W28 -to HPS_DDR3_DM_2
|
||||
set_location_assignment PIN_AB28 -to HPS_DDR3_DM[3]
|
||||
set_location_assignment PIN_AB28 -to HPS_DDR3_DM_3
|
||||
set_location_assignment PIN_J25 -to HPS_DDR3_DQ[0]
|
||||
set_location_assignment PIN_J25 -to HPS_DDR3_DQ_0
|
||||
set_location_assignment PIN_J24 -to HPS_DDR3_DQ[1]
|
||||
set_location_assignment PIN_J24 -to HPS_DDR3_DQ_1
|
||||
set_location_assignment PIN_E28 -to HPS_DDR3_DQ[2]
|
||||
set_location_assignment PIN_E28 -to HPS_DDR3_DQ_2
|
||||
set_location_assignment PIN_D27 -to HPS_DDR3_DQ[3]
|
||||
set_location_assignment PIN_D27 -to HPS_DDR3_DQ_3
|
||||
set_location_assignment PIN_J26 -to HPS_DDR3_DQ[4]
|
||||
set_location_assignment PIN_J26 -to HPS_DDR3_DQ_4
|
||||
set_location_assignment PIN_K26 -to HPS_DDR3_DQ[5]
|
||||
set_location_assignment PIN_K26 -to HPS_DDR3_DQ_5
|
||||
set_location_assignment PIN_G27 -to HPS_DDR3_DQ[6]
|
||||
set_location_assignment PIN_G27 -to HPS_DDR3_DQ_6
|
||||
set_location_assignment PIN_F28 -to HPS_DDR3_DQ[7]
|
||||
set_location_assignment PIN_F28 -to HPS_DDR3_DQ_7
|
||||
set_location_assignment PIN_K25 -to HPS_DDR3_DQ[8]
|
||||
set_location_assignment PIN_K25 -to HPS_DDR3_DQ_8
|
||||
set_location_assignment PIN_L25 -to HPS_DDR3_DQ[9]
|
||||
set_location_assignment PIN_L25 -to HPS_DDR3_DQ_9
|
||||
set_location_assignment PIN_J27 -to HPS_DDR3_DQ[10]
|
||||
set_location_assignment PIN_J27 -to HPS_DDR3_DQ_10
|
||||
set_location_assignment PIN_J28 -to HPS_DDR3_DQ[11]
|
||||
set_location_assignment PIN_J28 -to HPS_DDR3_DQ_11
|
||||
set_location_assignment PIN_M27 -to HPS_DDR3_DQ[12]
|
||||
set_location_assignment PIN_M27 -to HPS_DDR3_DQ_12
|
||||
set_location_assignment PIN_M26 -to HPS_DDR3_DQ[13]
|
||||
set_location_assignment PIN_M26 -to HPS_DDR3_DQ_13
|
||||
set_location_assignment PIN_M28 -to HPS_DDR3_DQ[14]
|
||||
set_location_assignment PIN_M28 -to HPS_DDR3_DQ_14
|
||||
set_location_assignment PIN_N28 -to HPS_DDR3_DQ[15]
|
||||
set_location_assignment PIN_N28 -to HPS_DDR3_DQ_15
|
||||
set_location_assignment PIN_N24 -to HPS_DDR3_DQ[16]
|
||||
set_location_assignment PIN_N24 -to HPS_DDR3_DQ_16
|
||||
set_location_assignment PIN_N25 -to HPS_DDR3_DQ[17]
|
||||
set_location_assignment PIN_N25 -to HPS_DDR3_DQ_17
|
||||
set_location_assignment PIN_T28 -to HPS_DDR3_DQ[18]
|
||||
set_location_assignment PIN_T28 -to HPS_DDR3_DQ_18
|
||||
set_location_assignment PIN_U28 -to HPS_DDR3_DQ[19]
|
||||
set_location_assignment PIN_U28 -to HPS_DDR3_DQ_19
|
||||
set_location_assignment PIN_N26 -to HPS_DDR3_DQ[20]
|
||||
set_location_assignment PIN_N26 -to HPS_DDR3_DQ_20
|
||||
set_location_assignment PIN_N27 -to HPS_DDR3_DQ[21]
|
||||
set_location_assignment PIN_N27 -to HPS_DDR3_DQ_21
|
||||
set_location_assignment PIN_R27 -to HPS_DDR3_DQ[22]
|
||||
set_location_assignment PIN_R27 -to HPS_DDR3_DQ_22
|
||||
set_location_assignment PIN_V27 -to HPS_DDR3_DQ[23]
|
||||
set_location_assignment PIN_V27 -to HPS_DDR3_DQ_23
|
||||
set_location_assignment PIN_R26 -to HPS_DDR3_DQ[24]
|
||||
set_location_assignment PIN_R26 -to HPS_DDR3_DQ_24
|
||||
set_location_assignment PIN_R25 -to HPS_DDR3_DQ[25]
|
||||
set_location_assignment PIN_R25 -to HPS_DDR3_DQ_25
|
||||
set_location_assignment PIN_AA28 -to HPS_DDR3_DQ[26]
|
||||
set_location_assignment PIN_AA28 -to HPS_DDR3_DQ_26
|
||||
set_location_assignment PIN_W26 -to HPS_DDR3_DQ[27]
|
||||
set_location_assignment PIN_W26 -to HPS_DDR3_DQ_27
|
||||
set_location_assignment PIN_R24 -to HPS_DDR3_DQ[28]
|
||||
set_location_assignment PIN_R24 -to HPS_DDR3_DQ_28
|
||||
set_location_assignment PIN_T24 -to HPS_DDR3_DQ[29]
|
||||
set_location_assignment PIN_T24 -to HPS_DDR3_DQ_29
|
||||
set_location_assignment PIN_Y27 -to HPS_DDR3_DQ[30]
|
||||
set_location_assignment PIN_Y27 -to HPS_DDR3_DQ_30
|
||||
set_location_assignment PIN_AA27 -to HPS_DDR3_DQ[31]
|
||||
set_location_assignment PIN_AA27 -to HPS_DDR3_DQ_31
|
||||
set_location_assignment PIN_R16 -to HPS_DDR3_DQS_N[0]
|
||||
set_location_assignment PIN_R16 -to HPS_DDR3_DQS_N_0
|
||||
set_location_assignment PIN_R18 -to HPS_DDR3_DQS_N[1]
|
||||
set_location_assignment PIN_R18 -to HPS_DDR3_DQS_N_1
|
||||
set_location_assignment PIN_T18 -to HPS_DDR3_DQS_N[2]
|
||||
set_location_assignment PIN_T18 -to HPS_DDR3_DQS_N_2
|
||||
set_location_assignment PIN_T20 -to HPS_DDR3_DQS_N[3]
|
||||
set_location_assignment PIN_T20 -to HPS_DDR3_DQS_N_3
|
||||
set_location_assignment PIN_R17 -to HPS_DDR3_DQS_P[0]
|
||||
set_location_assignment PIN_R17 -to HPS_DDR3_DQS_P_0
|
||||
set_location_assignment PIN_R19 -to HPS_DDR3_DQS_P[1]
|
||||
set_location_assignment PIN_R19 -to HPS_DDR3_DQS_P_1
|
||||
set_location_assignment PIN_T19 -to HPS_DDR3_DQS_P[2]
|
||||
set_location_assignment PIN_T19 -to HPS_DDR3_DQS_P_2
|
||||
set_location_assignment PIN_U19 -to HPS_DDR3_DQS_P[3]
|
||||
set_location_assignment PIN_U19 -to HPS_DDR3_DQS_P_3
|
||||
set_location_assignment PIN_D28 -to HPS_DDR3_ODT
|
||||
set_location_assignment PIN_A25 -to HPS_DDR3_RAS_N
|
||||
set_location_assignment PIN_V28 -to HPS_DDR3_RESET_N
|
||||
set_location_assignment PIN_D25 -to HPS_DDR3_RZQ
|
||||
set_location_assignment PIN_E25 -to HPS_DDR3_WE_N
|
||||
set_location_assignment PIN_J15 -to HPS_ENET_GTX_CLK
|
||||
set_location_assignment PIN_B14 -to HPS_ENET_INT_N
|
||||
set_location_assignment PIN_A13 -to HPS_ENET_MDC
|
||||
set_location_assignment PIN_E16 -to HPS_ENET_MDIO
|
||||
set_location_assignment PIN_J12 -to HPS_ENET_RX_CLK
|
||||
set_location_assignment PIN_A14 -to HPS_ENET_RX_DATA[0]
|
||||
set_location_assignment PIN_A14 -to HPS_ENET_RX_DATA_0
|
||||
set_location_assignment PIN_A11 -to HPS_ENET_RX_DATA[1]
|
||||
set_location_assignment PIN_A11 -to HPS_ENET_RX_DATA_1
|
||||
set_location_assignment PIN_C15 -to HPS_ENET_RX_DATA[2]
|
||||
set_location_assignment PIN_C15 -to HPS_ENET_RX_DATA_2
|
||||
set_location_assignment PIN_A9 -to HPS_ENET_RX_DATA[3]
|
||||
set_location_assignment PIN_A9 -to HPS_ENET_RX_DATA_3
|
||||
set_location_assignment PIN_J13 -to HPS_ENET_RX_DV
|
||||
set_location_assignment PIN_A16 -to HPS_ENET_TX_DATA[0]
|
||||
set_location_assignment PIN_A16 -to HPS_ENET_TX_DATA_0
|
||||
set_location_assignment PIN_J14 -to HPS_ENET_TX_DATA[1]
|
||||
set_location_assignment PIN_J14 -to HPS_ENET_TX_DATA_1
|
||||
set_location_assignment PIN_A15 -to HPS_ENET_TX_DATA[2]
|
||||
set_location_assignment PIN_A15 -to HPS_ENET_TX_DATA_2
|
||||
set_location_assignment PIN_D17 -to HPS_ENET_TX_DATA[3]
|
||||
set_location_assignment PIN_D17 -to HPS_ENET_TX_DATA_3
|
||||
set_location_assignment PIN_A12 -to HPS_ENET_TX_EN
|
||||
set_location_assignment PIN_A17 -to HPS_GSENSOR_INT
|
||||
set_location_assignment PIN_C18 -to HPS_I2C0_SCLK
|
||||
set_location_assignment PIN_A19 -to HPS_I2C0_SDAT
|
||||
set_location_assignment PIN_K18 -to HPS_I2C1_SCLK
|
||||
set_location_assignment PIN_A21 -to HPS_I2C1_SDAT
|
||||
set_location_assignment PIN_J18 -to HPS_KEY_N
|
||||
set_location_assignment PIN_A20 -to HPS_LED
|
||||
set_location_assignment PIN_H13 -to HPS_LTC_GPIO
|
||||
set_location_assignment PIN_B8 -to HPS_SD_CLK
|
||||
set_location_assignment PIN_D14 -to HPS_SD_CMD
|
||||
set_location_assignment PIN_C13 -to HPS_SD_DATA[0]
|
||||
set_location_assignment PIN_C13 -to HPS_SD_DATA_0
|
||||
set_location_assignment PIN_B6 -to HPS_SD_DATA[1]
|
||||
set_location_assignment PIN_B6 -to HPS_SD_DATA_1
|
||||
set_location_assignment PIN_B11 -to HPS_SD_DATA[2]
|
||||
set_location_assignment PIN_B11 -to HPS_SD_DATA_2
|
||||
set_location_assignment PIN_B9 -to HPS_SD_DATA[3]
|
||||
set_location_assignment PIN_B9 -to HPS_SD_DATA_3
|
||||
set_location_assignment PIN_C19 -to HPS_SPIM_CLK
|
||||
set_location_assignment PIN_B19 -to HPS_SPIM_MISO
|
||||
set_location_assignment PIN_B16 -to HPS_SPIM_MOSI
|
||||
set_location_assignment PIN_C16 -to HPS_SPIM_SS
|
||||
set_location_assignment PIN_A22 -to HPS_UART_RX
|
||||
set_location_assignment PIN_B21 -to HPS_UART_TX
|
||||
set_location_assignment PIN_G4 -to HPS_USB_CLKOUT
|
||||
set_location_assignment PIN_C10 -to HPS_USB_DATA[0]
|
||||
set_location_assignment PIN_C10 -to HPS_USB_DATA_0
|
||||
set_location_assignment PIN_F5 -to HPS_USB_DATA[1]
|
||||
set_location_assignment PIN_F5 -to HPS_USB_DATA_1
|
||||
set_location_assignment PIN_C9 -to HPS_USB_DATA[2]
|
||||
set_location_assignment PIN_C9 -to HPS_USB_DATA_2
|
||||
set_location_assignment PIN_C4 -to HPS_USB_DATA[3]
|
||||
set_location_assignment PIN_C4 -to HPS_USB_DATA_3
|
||||
set_location_assignment PIN_C8 -to HPS_USB_DATA[4]
|
||||
set_location_assignment PIN_C8 -to HPS_USB_DATA_4
|
||||
set_location_assignment PIN_D4 -to HPS_USB_DATA[5]
|
||||
set_location_assignment PIN_D4 -to HPS_USB_DATA_5
|
||||
set_location_assignment PIN_C7 -to HPS_USB_DATA[6]
|
||||
set_location_assignment PIN_C7 -to HPS_USB_DATA_6
|
||||
set_location_assignment PIN_F4 -to HPS_USB_DATA[7]
|
||||
set_location_assignment PIN_F4 -to HPS_USB_DATA_7
|
||||
set_location_assignment PIN_E5 -to HPS_USB_DIR
|
||||
set_location_assignment PIN_D5 -to HPS_USB_NXT
|
||||
set_location_assignment PIN_C5 -to HPS_USB_STP
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_CONV_USB_N
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_1
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_2
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_3
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_4
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_5
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_6
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_7
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_8
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_9
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_10
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_11
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_12
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_13
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_ADDR_14
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_BA_0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_BA_1
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_BA_2
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM_0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM_1
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM_2
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DM_3
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_0
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_1
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_2
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_3
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_4
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_5
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_6
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_7
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_8
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_9
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_10
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_11
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_12
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_13
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_14
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_15
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_16
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_17
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_18
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_19
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_20
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_21
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_22
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_23
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_24
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_25
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_26
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_27
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_28
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_29
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_30
|
||||
set_instance_assignment -name IO_STANDARD "SSTL-15 CLASS I" -to HPS_DDR3_DQ_31
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N_0
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N_1
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N_2
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_N_3
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P_0
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P_1
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P_2
|
||||
set_instance_assignment -name IO_STANDARD "DIFFERENTIAL 1.5-V SSTL CLASS I" -to HPS_DDR3_DQS_P_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_GTX_CLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_INT_N
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_MDC
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_MDIO
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_CLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DATA_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_RX_DV
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_DATA_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_ENET_TX_EN
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_GSENSOR_INT
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_I2C0_SCLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_I2C0_SDAT
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_I2C1_SCLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_I2C1_SDAT
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_KEY_N
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_LED
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_LTC_GPIO
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_CLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_CMD
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SD_DATA_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SPIM_CLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SPIM_MISO
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SPIM_MOSI
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_SPIM_SS
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_UART_RX
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_UART_TX
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_CLKOUT
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[4]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_4
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[5]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_5
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[6]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_6
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA[7]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DATA_7
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_DIR
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_NXT
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to HPS_USB_STP
|
||||
set_location_assignment PIN_AH17 -to KEY_N[0]
|
||||
set_location_assignment PIN_AH17 -to KEY_N_0
|
||||
set_location_assignment PIN_AH16 -to KEY_N[1]
|
||||
set_location_assignment PIN_AH16 -to KEY_N_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY_N[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY_N_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY_N[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to KEY_N_1
|
||||
set_location_assignment PIN_W15 -to LED[0]
|
||||
set_location_assignment PIN_W15 -to LED_0
|
||||
set_location_assignment PIN_AA24 -to LED[1]
|
||||
set_location_assignment PIN_AA24 -to LED_1
|
||||
set_location_assignment PIN_V16 -to LED[2]
|
||||
set_location_assignment PIN_V16 -to LED_2
|
||||
set_location_assignment PIN_V15 -to LED[3]
|
||||
set_location_assignment PIN_V15 -to LED_3
|
||||
set_location_assignment PIN_AF26 -to LED[4]
|
||||
set_location_assignment PIN_AF26 -to LED_4
|
||||
set_location_assignment PIN_AE26 -to LED[5]
|
||||
set_location_assignment PIN_AE26 -to LED_5
|
||||
set_location_assignment PIN_Y16 -to LED[6]
|
||||
set_location_assignment PIN_Y16 -to LED_6
|
||||
set_location_assignment PIN_AA23 -to LED[7]
|
||||
set_location_assignment PIN_AA23 -to LED_7
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[4]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_4
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[5]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_5
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[6]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_6
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED[7]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to LED_7
|
||||
set_location_assignment PIN_L10 -to SW[0]
|
||||
set_location_assignment PIN_L10 -to SW_0
|
||||
set_location_assignment PIN_L9 -to SW[1]
|
||||
set_location_assignment PIN_L9 -to SW_1
|
||||
set_location_assignment PIN_H6 -to SW[2]
|
||||
set_location_assignment PIN_H6 -to SW_2
|
||||
set_location_assignment PIN_H5 -to SW[3]
|
||||
set_location_assignment PIN_H5 -to SW_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to SW_3
|
||||
set_location_assignment PIN_W12 -to GPIO_0_LT24_ADC_BUSY
|
||||
set_location_assignment PIN_AF11 -to GPIO_0_LT24_ADC_CS_N
|
||||
set_location_assignment PIN_Y8 -to GPIO_0_LT24_ADC_DCLK
|
||||
set_location_assignment PIN_AF8 -to GPIO_0_LT24_ADC_DIN
|
||||
set_location_assignment PIN_AF7 -to GPIO_0_LT24_ADC_DOUT
|
||||
set_location_assignment PIN_V12 -to GPIO_0_LT24_ADC_PENIRQ_N
|
||||
set_location_assignment PIN_AF6 -to GPIO_0_LT24_CS_N
|
||||
set_location_assignment PIN_Y5 -to GPIO_0_LT24_D[0]
|
||||
set_location_assignment PIN_Y5 -to GPIO_0_LT24_D_0
|
||||
set_location_assignment PIN_Y4 -to GPIO_0_LT24_D[1]
|
||||
set_location_assignment PIN_Y4 -to GPIO_0_LT24_D_1
|
||||
set_location_assignment PIN_W8 -to GPIO_0_LT24_D[2]
|
||||
set_location_assignment PIN_W8 -to GPIO_0_LT24_D_2
|
||||
set_location_assignment PIN_AB4 -to GPIO_0_LT24_D[3]
|
||||
set_location_assignment PIN_AB4 -to GPIO_0_LT24_D_3
|
||||
set_location_assignment PIN_AH6 -to GPIO_0_LT24_D[4]
|
||||
set_location_assignment PIN_AH6 -to GPIO_0_LT24_D_4
|
||||
set_location_assignment PIN_AH4 -to GPIO_0_LT24_D[5]
|
||||
set_location_assignment PIN_AH4 -to GPIO_0_LT24_D_5
|
||||
set_location_assignment PIN_AG5 -to GPIO_0_LT24_D[6]
|
||||
set_location_assignment PIN_AG5 -to GPIO_0_LT24_D_6
|
||||
set_location_assignment PIN_AH3 -to GPIO_0_LT24_D[7]
|
||||
set_location_assignment PIN_AH3 -to GPIO_0_LT24_D_7
|
||||
set_location_assignment PIN_AH2 -to GPIO_0_LT24_D[8]
|
||||
set_location_assignment PIN_AH2 -to GPIO_0_LT24_D_8
|
||||
set_location_assignment PIN_AF4 -to GPIO_0_LT24_D[9]
|
||||
set_location_assignment PIN_AF4 -to GPIO_0_LT24_D_9
|
||||
set_location_assignment PIN_AG6 -to GPIO_0_LT24_D[10]
|
||||
set_location_assignment PIN_AG6 -to GPIO_0_LT24_D_10
|
||||
set_location_assignment PIN_AF5 -to GPIO_0_LT24_D[11]
|
||||
set_location_assignment PIN_AF5 -to GPIO_0_LT24_D_11
|
||||
set_location_assignment PIN_AE4 -to GPIO_0_LT24_D[12]
|
||||
set_location_assignment PIN_AE4 -to GPIO_0_LT24_D_12
|
||||
set_location_assignment PIN_T13 -to GPIO_0_LT24_D[13]
|
||||
set_location_assignment PIN_T13 -to GPIO_0_LT24_D_13
|
||||
set_location_assignment PIN_T11 -to GPIO_0_LT24_D[14]
|
||||
set_location_assignment PIN_T11 -to GPIO_0_LT24_D_14
|
||||
set_location_assignment PIN_AE7 -to GPIO_0_LT24_D[15]
|
||||
set_location_assignment PIN_AE7 -to GPIO_0_LT24_D_15
|
||||
set_location_assignment PIN_AE12 -to GPIO_0_LT24_LCD_ON
|
||||
set_location_assignment PIN_T8 -to GPIO_0_LT24_RD_N
|
||||
set_location_assignment PIN_AE11 -to GPIO_0_LT24_RESET_N
|
||||
set_location_assignment PIN_AH5 -to GPIO_0_LT24_RS
|
||||
set_location_assignment PIN_T12 -to GPIO_0_LT24_WR_N
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_ADC_BUSY
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_ADC_CS_N
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_ADC_DCLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_ADC_DIN
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_ADC_DOUT
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_ADC_PENIRQ_N
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_CS_N
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[4]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_4
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[5]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_5
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[6]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_6
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[7]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_7
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[8]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_8
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[9]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_9
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[10]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_10
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[11]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_11
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[12]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_12
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[13]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_13
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[14]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_14
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D[15]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_D_15
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_LCD_ON
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_RD_N
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_RESET_N
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_RS
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_0_LT24_WR_N
|
||||
set_location_assignment PIN_AG18 -to GPIO_1_D5M_D[0]
|
||||
set_location_assignment PIN_AG18 -to GPIO_1_D5M_D_0
|
||||
set_location_assignment PIN_AC23 -to GPIO_1_D5M_D[1]
|
||||
set_location_assignment PIN_AC23 -to GPIO_1_D5M_D_1
|
||||
set_location_assignment PIN_AF20 -to GPIO_1_D5M_D[2]
|
||||
set_location_assignment PIN_AF20 -to GPIO_1_D5M_D_2
|
||||
set_location_assignment PIN_AG19 -to GPIO_1_D5M_D[3]
|
||||
set_location_assignment PIN_AG19 -to GPIO_1_D5M_D_3
|
||||
set_location_assignment PIN_AG20 -to GPIO_1_D5M_D[4]
|
||||
set_location_assignment PIN_AG20 -to GPIO_1_D5M_D_4
|
||||
set_location_assignment PIN_AF21 -to GPIO_1_D5M_D[5]
|
||||
set_location_assignment PIN_AF21 -to GPIO_1_D5M_D_5
|
||||
set_location_assignment PIN_AE22 -to GPIO_1_D5M_D[6]
|
||||
set_location_assignment PIN_AE22 -to GPIO_1_D5M_D_6
|
||||
set_location_assignment PIN_AF23 -to GPIO_1_D5M_D[7]
|
||||
set_location_assignment PIN_AF23 -to GPIO_1_D5M_D_7
|
||||
set_location_assignment PIN_AH24 -to GPIO_1_D5M_D[8]
|
||||
set_location_assignment PIN_AH24 -to GPIO_1_D5M_D_8
|
||||
set_location_assignment PIN_AG26 -to GPIO_1_D5M_D[9]
|
||||
set_location_assignment PIN_AG26 -to GPIO_1_D5M_D_9
|
||||
set_location_assignment PIN_AH27 -to GPIO_1_D5M_D[10]
|
||||
set_location_assignment PIN_AH27 -to GPIO_1_D5M_D_10
|
||||
set_location_assignment PIN_AG28 -to GPIO_1_D5M_D[11]
|
||||
set_location_assignment PIN_AG28 -to GPIO_1_D5M_D_11
|
||||
set_location_assignment PIN_AD19 -to GPIO_1_D5M_FVAL
|
||||
set_location_assignment PIN_AF18 -to GPIO_1_D5M_LVAL
|
||||
set_location_assignment PIN_Y15 -to GPIO_1_D5M_PIXCLK
|
||||
set_location_assignment PIN_AF25 -to GPIO_1_D5M_RESET_N
|
||||
set_location_assignment PIN_AE24 -to GPIO_1_D5M_SCLK
|
||||
set_location_assignment PIN_AE20 -to GPIO_1_D5M_SDATA
|
||||
set_location_assignment PIN_AE19 -to GPIO_1_D5M_STROBE
|
||||
set_location_assignment PIN_AG23 -to GPIO_1_D5M_TRIGGER
|
||||
set_location_assignment PIN_AG24 -to GPIO_1_D5M_XCLKIN
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D[0]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D_0
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D[1]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D_1
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D[2]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D_2
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D[3]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D_3
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D[4]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D_4
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D[5]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D_5
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D[6]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D_6
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D[7]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D_7
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D[8]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D_8
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D[9]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D_9
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D[10]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D_10
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D[11]
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_D_11
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_FVAL
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_LVAL
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_PIXCLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_RESET_N
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_SCLK
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_SDATA
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_STROBE
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_TRIGGER
|
||||
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to GPIO_1_D5M_XCLKIN
|
||||
set_global_assignment -name QSYS_FILE system.qsys
|
||||
set_global_assignment -name VHDL_FILE ../hdl/LCDController/PixTrans.vhd -hdl_version VHDL_2008
|
||||
set_global_assignment -name VHDL_FILE ../hdl/LCDController/LCDDriver.vhd -hdl_version VHDL_2008
|
||||
set_global_assignment -name VHDL_FILE ../hdl/LCDController/LCDAvalonMaster.vhd -hdl_version VHDL_2008
|
||||
set_global_assignment -name VHDL_FILE ../hdl/LCDController/LCDController.vhd -hdl_version VHDL_2008
|
||||
set_global_assignment -name VHDL_FILE ../hdl/LCDController/ClkGen.vhd -hdl_version VHDL_2008
|
||||
set_global_assignment -name VHDL_FILE ../hdl/DE0_Nano_SoC_LT24_top_level.vhd -hdl_version VHDL_2008
|
||||
set_global_assignment -name TCL_SCRIPT_FILE ../hdl/LCDController/LCDController_hw.tcl
|
||||
set_global_assignment -name TCL_SCRIPT_FILE pin_assignment_DE0_Nano_SoC_TRDB_D5M_LT24.tcl
|
||||
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
|
1219
cs473-es/lab3/hw/quartus/system.qsys
Normal file
1219
cs473-es/lab3/hw/quartus/system.qsys
Normal file
File diff suppressed because one or more lines are too long
87129
cs473-es/lab3/hw/quartus/system.sopcinfo
Normal file
87129
cs473-es/lab3/hw/quartus/system.sopcinfo
Normal file
File diff suppressed because one or more lines are too long
68
cs473-es/lab3/sw/.gitignore
vendored
Normal file
68
cs473-es/lab3/sw/.gitignore
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
lab3_lcd_bsp
|
||||
|
||||
*.o
|
||||
*.d
|
||||
|
||||
.metadata
|
||||
bin/
|
||||
tmp/
|
||||
*.tmp
|
||||
*.bak
|
||||
*.swp
|
||||
*~.nib
|
||||
local.properties
|
||||
.settings/
|
||||
.loadpath
|
||||
.recommenders
|
||||
*.map
|
||||
*.elf
|
||||
*.objdump
|
||||
|
||||
# External tool builders
|
||||
.externalToolBuilders/
|
||||
|
||||
# Locally stored "Eclipse launch configurations"
|
||||
*.launch
|
||||
|
||||
# PyDev specific (Python IDE for Eclipse)
|
||||
*.pydevproject
|
||||
|
||||
# CDT-specific (C/C++ Development Tooling)
|
||||
.cproject
|
||||
|
||||
# CDT- autotools
|
||||
.autotools
|
||||
|
||||
# Java annotation processor (APT)
|
||||
.factorypath
|
||||
|
||||
# PDT-specific (PHP Development Tools)
|
||||
.buildpath
|
||||
|
||||
# sbteclipse plugin
|
||||
.target
|
||||
|
||||
# Tern plugin
|
||||
.tern-project
|
||||
|
||||
# TeXlipse plugin
|
||||
.texlipse
|
||||
|
||||
# STS (Spring Tool Suite)
|
||||
.springBeans
|
||||
|
||||
# Code Recommenders
|
||||
.recommenders/
|
||||
|
||||
# Annotation Processing
|
||||
.apt_generated/
|
||||
.apt_generated_test/
|
||||
|
||||
# Scala IDE specific (Scala & Java development for Eclipse)
|
||||
.cache-main
|
||||
.scala_dependencies
|
||||
.worksheet
|
||||
|
||||
# Uncomment this line if you wish to ignore the project description file.
|
||||
# Typically, this file would be tracked if it contains build/dependency configurations:
|
||||
#.project
|
0
cs473-es/lab3/sw/nios/.force_relink
Normal file
0
cs473-es/lab3/sw/nios/.force_relink
Normal file
40
cs473-es/lab3/sw/nios/.project
Normal file
40
cs473-es/lab3/sw/nios/.project
Normal file
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>lab3_lcd</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>com.altera.sbtgui.project.makefileBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.altera.sbtgui.project.makefileBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>org.eclipse.cdt.core.ccnature</nature>
|
||||
<nature>com.altera.sbtgui.project.SBTGUINature</nature>
|
||||
<nature>com.altera.sbtgui.project.SBTGUIAppNature</nature>
|
||||
<nature>com.altera.sbtgui.project.SBTGUIManagedNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
1084
cs473-es/lab3/sw/nios/Makefile
Normal file
1084
cs473-es/lab3/sw/nios/Makefile
Normal file
File diff suppressed because it is too large
Load Diff
152
cs473-es/lab3/sw/nios/application/image_test.c
Normal file
152
cs473-es/lab3/sw/nios/application/image_test.c
Normal file
@@ -0,0 +1,152 @@
|
||||
#ifdef ENABLE_IMAGE_TEST
|
||||
|
||||
#include "stdint.h"
|
||||
#include "math.h"
|
||||
#include "stdio.h"
|
||||
|
||||
#include "lt24.h"
|
||||
|
||||
#include "system.h"
|
||||
#include "sys/alt_irq.h"
|
||||
|
||||
|
||||
#define W (320)
|
||||
#define H (240)
|
||||
|
||||
|
||||
typedef struct {
|
||||
unsigned char red,green,blue;
|
||||
} PPMPixel;
|
||||
|
||||
typedef struct {
|
||||
int x, y;
|
||||
PPMPixel *data;
|
||||
} PPMImage;
|
||||
|
||||
#define RGB_COMPONENT_COLOR 255
|
||||
|
||||
// Source: https://stackoverflow.com/questions/2693631/read-ppm-file-and-store-it-in-an-array-coded-with-c
|
||||
static PPMImage *readPPM(const char *filename)
|
||||
{
|
||||
char buff[16];
|
||||
PPMImage *img;
|
||||
FILE *fp;
|
||||
int c, rgb_comp_color;
|
||||
//open PPM file for reading
|
||||
fp = fopen(filename, "rb");
|
||||
if (!fp) {
|
||||
fprintf(stderr, "Unable to open file '%s'\n", filename);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//read image format
|
||||
if (!fgets(buff, sizeof(buff), fp)) {
|
||||
perror(filename);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//check the image format
|
||||
if (buff[0] != 'P' || buff[1] != '6') {
|
||||
fprintf(stderr, "Invalid image format (must be 'P6')\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//alloc memory form image
|
||||
img = HPS_0_BRIDGES_BASE;//(PPMImage *)malloc(sizeof(PPMImage));
|
||||
if (!img) {
|
||||
fprintf(stderr, "Unable to allocate memory\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//check for comments
|
||||
c = getc(fp);
|
||||
while (c == '#') {
|
||||
while (getc(fp) != '\n') ;
|
||||
c = getc(fp);
|
||||
}
|
||||
|
||||
ungetc(c, fp);
|
||||
//read image size information
|
||||
if (fscanf(fp, "%d %d", &img->x, &img->y) != 2) {
|
||||
fprintf(stderr, "Invalid image size (error loading '%s')\n", filename);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//read rgb component
|
||||
if (fscanf(fp, "%d", &rgb_comp_color) != 1) {
|
||||
fprintf(stderr, "Invalid rgb component (error loading '%s')\n", filename);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//check rgb component depth
|
||||
if (rgb_comp_color!= RGB_COMPONENT_COLOR) {
|
||||
fprintf(stderr, "'%s' does not have 8-bits components\n", filename);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
while (fgetc(fp) != '\n') ;
|
||||
//memory allocation for pixel data
|
||||
img->data = HPS_0_BRIDGES_BASE + sizeof(PPMImage);
|
||||
|
||||
if (!img) {
|
||||
fprintf(stderr, "Unable to allocate memory\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//read pixel data from file
|
||||
if (fread(img->data, 3 * img->x, img->y, fp) != img->y) {
|
||||
fprintf(stderr, "Error loading image '%s'\n", filename);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
return img;
|
||||
}
|
||||
|
||||
|
||||
void ppmToLCD(uint16_t* lcdbuf, PPMImage* ppm) {
|
||||
pixel_t p;
|
||||
for(int y = 0; y < ppm->y; y++) {
|
||||
for(int x = 0; x < ppm->x; x++) {
|
||||
const PPMPixel* ppmPixel = &ppm->data[y*W + x];
|
||||
p.r = ppmPixel->red >> 3;
|
||||
p.g = ppmPixel->green >> 2;
|
||||
p.b = ppmPixel->blue >> 3;
|
||||
IOWR_16DIRECT(lcdbuf,y*W + x, encPixel(&p));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
struct LT24 *lcd = LCDCONTROLLER_0_BASE;
|
||||
uint16_t *buffer = HPS_0_BRIDGES_BASE;
|
||||
|
||||
LT24_initialize(lcd);
|
||||
LT24_setWidth(lcd, W);
|
||||
LT24_setHeight(lcd, H);
|
||||
|
||||
LT24_writeBase(lcd, (uint32_t)buffer);
|
||||
|
||||
// Read PPM from file
|
||||
PPMImage* img = readPPM("/mnt/host/application/testimage.ppm");
|
||||
if (img == NULL){
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Ensure equal to LCD display
|
||||
if(img->x != W || img->y != H) {
|
||||
fprintf(stderr, "Invalid image size (must be 320x240 but was %d x %d)\n", img->x, img->y);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Write (and translate) to LCD buffer
|
||||
ppmToLCD(buffer, img);
|
||||
|
||||
LT24_refresh(lcd);
|
||||
|
||||
while (1){}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
99
cs473-es/lab3/sw/nios/application/lcdcam_system_test.c
Executable file
99
cs473-es/lab3/sw/nios/application/lcdcam_system_test.c
Executable file
@@ -0,0 +1,99 @@
|
||||
#ifdef ENABLE_LCDCAM_TEST
|
||||
|
||||
#include "lt24.h"
|
||||
#include "stdint.h"
|
||||
#include "stddef.h"
|
||||
|
||||
#include "system.h"
|
||||
|
||||
#define WIDTH 320
|
||||
#define HEIGHT 240
|
||||
#define NPIXELS WIDTH*HEIGHT
|
||||
#define PIXELSIZE 2 // 16 bits
|
||||
#define BUFFER_SIZE NPIXELS / PIXELSIZE // in words
|
||||
#define BUFFER1 0x10000000
|
||||
#define BUFFER2 BUFFER1 + BUFFER_SIZE
|
||||
#define BUFFER3 BUFFER2 + BUFFER_SIZE
|
||||
#define N_BUFFERS 3
|
||||
|
||||
struct BufferManager {
|
||||
uint32_t* buffers[N_BUFFERS];
|
||||
|
||||
// Buffer assignment semantics:
|
||||
// if null
|
||||
// => device currently has no assigne buffer
|
||||
// => device is currently now showing/capturing
|
||||
uint32_t* lcd_buffer;
|
||||
uint32_t* cam_buffer;
|
||||
};
|
||||
|
||||
struct BufferManager bman;
|
||||
struct LT24 *lcd = LCDCONTROLLER_0_BASE;
|
||||
// struct Camera cam = CAMERA_ADDRESS;
|
||||
|
||||
void setupBuffers(struct BufferManager* bman, uint32_t* b1, uint32_t* b2, uint32_t* b3) {
|
||||
bman->buffers[0] = b1;
|
||||
bman->buffers[1] = b2;
|
||||
bman->buffers[2] = b3;
|
||||
bman->lcd_buffer = 0;
|
||||
bman->cam_buffer = 0;
|
||||
}
|
||||
|
||||
int main_changeme() {
|
||||
setupBuffers(&bman, BUFFER1, BUFFER2, BUFFER3);
|
||||
|
||||
LT24_initialize(lcd);
|
||||
// startCamera(&cam);
|
||||
while(1) {
|
||||
// TODO: put to sleep...
|
||||
}
|
||||
}
|
||||
|
||||
void tryLCDShow() {
|
||||
char gotBuffer = 0;
|
||||
for (int i = 0; i < N_BUFFERS; i++) {
|
||||
if (bman.buffers[i] != 0 && bman.buffers[i] != bman.cam_buffer) {
|
||||
bman.lcd_buffer = bman.buffers[i];
|
||||
gotBuffer = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (gotBuffer) {
|
||||
LT24_refresh(lcd);
|
||||
} else {
|
||||
bman.lcd_buffer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void tryCamCapture() {
|
||||
char gotBuffer = 0;
|
||||
for (int i = 0; i < N_BUFFERS; i++) {
|
||||
if (bman.buffers[i] != bman.lcd_buffer && bman.buffers[i] != bman.cam_buffer) {
|
||||
bman.cam_buffer = bman.buffers[i];
|
||||
gotBuffer = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (gotBuffer) {
|
||||
// captureImage(bman.lcd_buffer);
|
||||
} else {
|
||||
bman.cam_buffer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void IRQ_lcd() {
|
||||
bman.lcd_buffer = 0; // Yield buffer
|
||||
tryLCDShow(); // Locate any ready buffer
|
||||
if (bman.cam_buffer == 0) { // If camera currently inactive, re-try capture (we just yielded a buffer)
|
||||
tryCamCapture();
|
||||
}
|
||||
}
|
||||
|
||||
void IRQ_camera() {
|
||||
tryCamCapture();
|
||||
if (bman.lcd_buffer == 0) {
|
||||
tryLCDShow();
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
67
cs473-es/lab3/sw/nios/application/lcdtest.c
Executable file
67
cs473-es/lab3/sw/nios/application/lcdtest.c
Executable file
@@ -0,0 +1,67 @@
|
||||
#define LCD_TEST
|
||||
#ifdef LCD_TEST
|
||||
#include <stdint.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "lt24.h"
|
||||
|
||||
#include "system.h"
|
||||
#include "sys/alt_irq.h"
|
||||
|
||||
#define MAX_RED (2 << 5)
|
||||
#define MAX_GREEN (2 << 6)
|
||||
#define MAX_BLUE (2 << 5)
|
||||
|
||||
#define MAX_RED_V 0b11111
|
||||
#define MAX_GREEN_V 0b111111
|
||||
#define MAX_BLUE_V 0b11111
|
||||
|
||||
// Compute an image that is h + MAX_GREEN in height
|
||||
void drawTestImage(uint16_t *buffer, const unsigned h, const unsigned w, const unsigned offset)
|
||||
{
|
||||
pixel_t p0 = {0};
|
||||
int idx = 0;
|
||||
float rh = 1.*MAX_RED_V;
|
||||
float rw = 1.*MAX_BLUE_V;
|
||||
for (int y = 0; y < h; y++) {
|
||||
for (int x = 0; x < w; x++) {
|
||||
p0.r = (unsigned)(y*rh / h);
|
||||
p0.b = (unsigned)(x*rw / w);
|
||||
|
||||
IOWR_16DIRECT(buffer, idx, encPixel(&p0));
|
||||
idx+=2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#define W (320)
|
||||
#define H (240)
|
||||
uint16_t *buffer = HPS_0_BRIDGES_BASE;
|
||||
struct LT24 *lcd = LCDCONTROLLER_0_BASE;
|
||||
|
||||
void lcd_ISR()
|
||||
{
|
||||
LT24_clearIRQ(lcd, LT24_IRQ_CTRL_IRQ0_ACTIVE);
|
||||
LT24_refresh(lcd);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
LT24_initialize(lcd);
|
||||
LT24_writeIRQ(lcd, LT24_IRQ_CTRL_ENABLE);
|
||||
LT24_setWidth(lcd, W);
|
||||
LT24_setHeight(lcd, H);
|
||||
|
||||
LT24_writeBase(lcd, (uint32_t)buffer);
|
||||
// Register LCD refresh finished interrupt
|
||||
alt_ic_isr_register(LCDCONTROLLER_0_IRQ_INTERRUPT_CONTROLLER_ID,
|
||||
LCDCONTROLLER_0_IRQ, lcd_ISR, 0, 0);
|
||||
|
||||
drawTestImage(buffer,H,W,0);
|
||||
// Initiate continuous refreshing through an initial call to the ISR
|
||||
lcd_ISR();
|
||||
while (1){}
|
||||
return 0;
|
||||
}
|
||||
#endif
|
248
cs473-es/lab3/sw/nios/application/lt24.h
Executable file
248
cs473-es/lab3/sw/nios/application/lt24.h
Executable file
@@ -0,0 +1,248 @@
|
||||
#include "stdint.h"
|
||||
#include "stddef.h"
|
||||
#include "unistd.h"
|
||||
|
||||
|
||||
#include "io.h"
|
||||
|
||||
// LT24 LCD Controller pixel format
|
||||
typedef struct Pixel
|
||||
{
|
||||
unsigned r : 5;
|
||||
unsigned g : 6;
|
||||
unsigned b : 5;
|
||||
} pixel_t;
|
||||
|
||||
static inline uint16_t encPixel(const struct Pixel *p)
|
||||
{
|
||||
return (p->r << (5 + 6)) | (p->g << 5) | (p->b);
|
||||
}
|
||||
|
||||
// LT24 LCD Controller hardware address register layout
|
||||
struct LT24
|
||||
{
|
||||
uint32_t writeReg;
|
||||
uint32_t writeData;
|
||||
uint32_t writeBase;
|
||||
uint32_t refresh;
|
||||
uint32_t ctrlReg;
|
||||
uint32_t setHeight;
|
||||
uint32_t setWidth;
|
||||
uint32_t writeIRQ;
|
||||
uint32_t setIRQ;
|
||||
uint32_t clearIRQ;
|
||||
uint32_t isBusy;
|
||||
} __attribute__((__packed__));
|
||||
|
||||
|
||||
static inline void SleepMS(int someTime)
|
||||
{
|
||||
usleep(1000*someTime);
|
||||
}
|
||||
|
||||
#define LT24_WIDTH 320
|
||||
#define LT24_HEIGHT 240
|
||||
|
||||
|
||||
// LT24 Interrupt control register
|
||||
#define LT24_IRQ_CTRL_ENABLE_OFFSET 0
|
||||
#define LT24_IRQ_CTRL_ENABLE (1 << LT24_IRQ_CTRL_ENABLE_OFFSET)
|
||||
#define LT24_IRQ_CTRL_CLEAR_ON_REFRESH_OFFSET 1
|
||||
#define LT24_IRQ_CTRL_CLEAR_ON_REFRESH (1 << LT24_IRQ_CTRL_CLEAR_ON_REFRESH_OFFSET)
|
||||
#define LT24_IRQ_CTRL_IRQ0_ACTIVE_OFFSET 2
|
||||
#define LT24_IRQ_CTRL_IRQ0_ACTIVE (1 << LT24_IRQ_CTRL_IRQ0_ACTIVE_OFFSET)
|
||||
|
||||
// LT24 Control register
|
||||
#define LT24_CTRL_LCD_ON_OFFSET 0
|
||||
#define LT24_CTRL_LCD_ON (1 << LT24_CTRL_LCD_ON_OFFSET)
|
||||
#define LT24_CTRL_RST_OFFSET 1
|
||||
#define LT24_CTRL_RST (1 << LT24_CTRL_RST_OFFSET)
|
||||
|
||||
// LT24 Read convenience functions
|
||||
#define LT24_DEFINE_32_RDFUNC(funcname, fieldName) \
|
||||
static inline uint32_t LT24_##funcname(struct LT24 *lcd) \
|
||||
{ \
|
||||
return IORD_32DIRECT(lcd, offsetof(struct LT24, fieldName)); \
|
||||
}
|
||||
|
||||
LT24_DEFINE_32_RDFUNC(isBusy, isBusy);
|
||||
|
||||
// LT24 write convenience functions
|
||||
#define LT24_DEFINE_16_WRFUNC(funcname, fieldName) \
|
||||
static inline void LT24_##funcname(struct LT24 *lcd, uint16_t value) \
|
||||
{ \
|
||||
IOWR_32DIRECT(lcd, offsetof(struct LT24, fieldName), value); \
|
||||
}
|
||||
|
||||
LT24_DEFINE_16_WRFUNC(writeReg, writeReg)
|
||||
LT24_DEFINE_16_WRFUNC(writeData, writeData)
|
||||
LT24_DEFINE_16_WRFUNC(writeBase, writeBase)
|
||||
LT24_DEFINE_16_WRFUNC(writeCtrlReg, ctrlReg)
|
||||
LT24_DEFINE_16_WRFUNC(setHeight, setHeight)
|
||||
LT24_DEFINE_16_WRFUNC(setWidth, setWidth)
|
||||
LT24_DEFINE_16_WRFUNC(writeIRQ, writeIRQ)
|
||||
LT24_DEFINE_16_WRFUNC(setIRQ, setIRQ)
|
||||
LT24_DEFINE_16_WRFUNC(clearIRQ, clearIRQ)
|
||||
|
||||
static inline void LT24_setCursor(struct LT24 *lcd, alt_u16 x, alt_u16 y)
|
||||
{
|
||||
LT24_writeReg(lcd, 0x002A);
|
||||
LT24_writeData(lcd, x>>8);
|
||||
LT24_writeData(lcd, x&0XFF);
|
||||
LT24_writeReg(lcd, 0x002B);
|
||||
LT24_writeData(lcd, y>>8);
|
||||
LT24_writeData(lcd, y&0XFF);
|
||||
}
|
||||
|
||||
static inline void LT24_refresh(struct LT24 *lcd)
|
||||
{
|
||||
LT24_setCursor(lcd, 0, 0); // Initialize draw position to (0,0)
|
||||
LT24_writeReg(lcd, 0x2C); //Memory Write
|
||||
IOWR_32DIRECT(lcd, offsetof(struct LT24, refresh), 0);
|
||||
}
|
||||
|
||||
static inline void LT24_manualRefresh(struct LT24 *lcd, uint16_t* buffer, unsigned width, unsigned height)
|
||||
{
|
||||
LT24_setCursor(lcd, 0, 0); // Initialize draw position to (0,0)
|
||||
LT24_writeReg(lcd, 0x2C); //Memory Write
|
||||
for(int i = 0; i < width*height; i++) {
|
||||
LT24_writeData(lcd, *(buffer + i));
|
||||
}
|
||||
}
|
||||
|
||||
static inline void LT24_reset(struct LT24 *lcd) {
|
||||
|
||||
LT24_writeCtrlReg(lcd, LT24_CTRL_LCD_ON);
|
||||
SleepMS(500);
|
||||
LT24_writeCtrlReg(lcd, LT24_CTRL_LCD_ON | LT24_CTRL_RST);
|
||||
SleepMS(10);
|
||||
LT24_writeCtrlReg(lcd, LT24_CTRL_LCD_ON);
|
||||
SleepMS(120);
|
||||
LT24_writeReg(lcd, 0x11); //Sleep Out
|
||||
SleepMS(10); // Docs: It will be necessary to wait 5msec before sending next to command, this is to allow time for the supply voltages and clock circuits to stabilize
|
||||
}
|
||||
|
||||
static inline void LT24_initialize(struct LT24 *lcd)
|
||||
{
|
||||
LT24_reset(lcd);
|
||||
|
||||
LT24_writeReg(lcd, 0xCF); //Power Control B
|
||||
LT24_writeData(lcd, 0x00); //Always0x00
|
||||
LT24_writeData(lcd, 0x81);
|
||||
LT24_writeData(lcd, 0xC0);
|
||||
|
||||
LT24_writeReg(lcd, 0xED); //Power on sequence control
|
||||
LT24_writeData(lcd, 0x64); //Soft Start Keep1 frame
|
||||
LT24_writeData(lcd, 0x03);
|
||||
LT24_writeData(lcd, 0X12);
|
||||
LT24_writeData(lcd, 0X81);
|
||||
|
||||
LT24_writeReg(lcd, 0xE8); //Driver timing control A
|
||||
LT24_writeData(lcd, 0x85);
|
||||
LT24_writeData(lcd, 0x01);
|
||||
LT24_writeData(lcd, 0x0798); // 0x00798 ???
|
||||
|
||||
LT24_writeReg(lcd, 0xCB); // Power control A
|
||||
LT24_writeData(lcd, 0x39);
|
||||
LT24_writeData(lcd, 0x2C);
|
||||
LT24_writeData(lcd, 0x00);
|
||||
LT24_writeData(lcd, 0x34);
|
||||
LT24_writeData(lcd, 0x02);
|
||||
|
||||
LT24_writeReg(lcd, 0xF7); // Pumpratio control
|
||||
LT24_writeData(lcd, 0x20);
|
||||
|
||||
LT24_writeReg(lcd, 0xEA); // Driver timing control B
|
||||
LT24_writeData(lcd, 0x00);
|
||||
LT24_writeData(lcd, 0x00);
|
||||
|
||||
LT24_writeReg(lcd, 0xB1); // Frame Control (In Normal Mode)
|
||||
LT24_writeData(lcd, 0x00);
|
||||
LT24_writeData(lcd, 0x1b);
|
||||
|
||||
LT24_writeReg(lcd, 0xB6); // Display FunctionControl
|
||||
LT24_writeData(lcd, 0x0A);
|
||||
LT24_writeData(lcd, 0xA2);
|
||||
|
||||
LT24_writeReg(lcd, 0xC0); //Power control 1
|
||||
LT24_writeData(lcd, 0x05); //VRH[5:0]
|
||||
|
||||
LT24_writeReg(lcd, 0xC1); //Power control 2
|
||||
LT24_writeData(lcd, 0x11); //SAP[2:0];BT[3:0]
|
||||
|
||||
LT24_writeReg(lcd, 0xC5); //VCM control 1
|
||||
LT24_writeData(lcd, 0x45); //3F
|
||||
LT24_writeData(lcd, 0x45); //3C
|
||||
|
||||
LT24_writeReg(lcd, 0xC7); //VCM control 2
|
||||
LT24_writeData(lcd, 0xA2);
|
||||
|
||||
LT24_writeReg(lcd, 0x36); //Memory Access Control
|
||||
LT24_writeData(lcd, 0x68);
|
||||
|
||||
LT24_writeReg(lcd, 0x2A); // Column Addr
|
||||
LT24_writeData(lcd, 0x00);
|
||||
LT24_writeData(lcd, 0x00);
|
||||
LT24_writeData(lcd, 0x01);
|
||||
LT24_writeData(lcd, 0x3F);
|
||||
|
||||
LT24_writeReg(lcd, 0x2B); // Page Addr
|
||||
LT24_writeData(lcd, 0x00);
|
||||
LT24_writeData(lcd, 0x00);
|
||||
LT24_writeData(lcd, 0x00);
|
||||
LT24_writeData(lcd, 0xF0);
|
||||
|
||||
LT24_writeReg(lcd, 0xF2); //Disable 3Gamma
|
||||
LT24_writeData(lcd, 0x00);
|
||||
|
||||
LT24_writeReg(lcd, 0x26); //Gamma Curve Selected
|
||||
LT24_writeData(lcd, 0x01);
|
||||
|
||||
LT24_writeReg(lcd, 0xE0); //Positive Gamma Correction, Set Gamma
|
||||
LT24_writeData(lcd, 0x0F);
|
||||
LT24_writeData(lcd, 0x26);
|
||||
LT24_writeData(lcd, 0x24);
|
||||
LT24_writeData(lcd, 0x0B);
|
||||
LT24_writeData(lcd, 0x0E);
|
||||
LT24_writeData(lcd, 0x08);
|
||||
LT24_writeData(lcd, 0x4B);
|
||||
LT24_writeData(lcd, 0XA8);
|
||||
LT24_writeData(lcd, 0x3B);
|
||||
LT24_writeData(lcd, 0x0A);
|
||||
LT24_writeData(lcd, 0x14);
|
||||
LT24_writeData(lcd, 0x06);
|
||||
LT24_writeData(lcd, 0x10);
|
||||
LT24_writeData(lcd, 0x09);
|
||||
LT24_writeData(lcd, 0x00);
|
||||
|
||||
LT24_writeReg(lcd, 0XE1); //NegativeGamma Correction, Set Gamma
|
||||
LT24_writeData(lcd, 0x00);
|
||||
LT24_writeData(lcd, 0x1C);
|
||||
LT24_writeData(lcd, 0x20);
|
||||
LT24_writeData(lcd, 0x04);
|
||||
LT24_writeData(lcd, 0x10);
|
||||
LT24_writeData(lcd, 0x08);
|
||||
LT24_writeData(lcd, 0x34);
|
||||
LT24_writeData(lcd, 0x47);
|
||||
LT24_writeData(lcd, 0x44);
|
||||
LT24_writeData(lcd, 0x05);
|
||||
LT24_writeData(lcd, 0x0B);
|
||||
LT24_writeData(lcd, 0x09);
|
||||
LT24_writeData(lcd, 0x2F);
|
||||
LT24_writeData(lcd, 0x36);
|
||||
LT24_writeData(lcd, 0x0F);
|
||||
|
||||
LT24_writeReg(lcd, 0x3A); //COLMOD: Pixel Format Set
|
||||
LT24_writeData(lcd, 0x55);
|
||||
|
||||
LT24_writeReg(lcd, 0xF6); //Interface Control
|
||||
LT24_writeData(lcd, 0x01);
|
||||
LT24_writeData(lcd, 0x30);
|
||||
LT24_writeData(lcd, 0x00);
|
||||
|
||||
LT24_writeReg(lcd, 0x29); //Display on
|
||||
|
||||
LT24_setCursor(lcd, 0, 0); // Initialize draw position to (0,0)
|
||||
|
||||
LT24_writeReg(lcd, 0x2C); //Memory Write
|
||||
}
|
230404
cs473-es/lab3/sw/nios/application/testimage.ppm
Normal file
230404
cs473-es/lab3/sw/nios/application/testimage.ppm
Normal file
File diff suppressed because it is too large
Load Diff
0
cs473-es/lab3/sw/nios/obj/default/.force_relink
Normal file
0
cs473-es/lab3/sw/nios/obj/default/.force_relink
Normal file
26
cs473-es/lab3/sw/nios/readme.txt
Normal file
26
cs473-es/lab3/sw/nios/readme.txt
Normal file
@@ -0,0 +1,26 @@
|
||||
Readme - Hello World Software Example
|
||||
|
||||
DESCRIPTION:
|
||||
Simple program that prints "Hello from Nios II"
|
||||
|
||||
The memory footprint of this hosted application is intended to be small (under 100 kbytes) by default
|
||||
using a standard reference deisgn.
|
||||
|
||||
For an even smaller, reduced footprint version of this template, and an explanation of how
|
||||
to reduce the memory footprint for a given application, see the
|
||||
"small_hello_world" template.
|
||||
|
||||
|
||||
PERIPHERALS USED:
|
||||
This example exercises the following peripherals:
|
||||
- STDOUT device (UART or JTAG UART)
|
||||
|
||||
SOFTWARE SOURCE FILES:
|
||||
This example includes the following software source files:
|
||||
- hello_world.c: Everyone needs a Hello World program, right?
|
||||
|
||||
BOARD/HOST REQUIREMENTS:
|
||||
This example requires only a JTAG connection with a Nios Development board. If
|
||||
the host communication settings are changed from JTAG UART (default) to use a
|
||||
conventional UART, a serial cable between board DB-9 connector and the host is
|
||||
required.
|
6
cs473-es/lab3/sw/nios/system/template.xml
Executable file
6
cs473-es/lab3/sw/nios/system/template.xml
Executable file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<template_settings>
|
||||
<template
|
||||
default_build_configuration="Release">
|
||||
</template>
|
||||
</template_settings>
|
Reference in New Issue
Block a user