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