Relayout the GUI to be more in line with expected norms

Add user logic reset signal
Stabilize data transfer
master
Timothy Pearson 10 years ago
parent 37420cfb78
commit 0ffb793cb5

@ -50,7 +50,7 @@
<cstring>group8BitInput</cstring>
</property>
<property name="title">
<string></string>
<string>8-Bit Input (Switches)</string>
</property>
<grid>
<property name="name">
@ -96,10 +96,33 @@
<cstring>group8BitInputLED0</cstring>
</property>
</widget>
<widget class="TQLabel" row="0" column="8">
<spacer row="0" column="8">
<property name="name">
<cstring>unnamed_spacer</cstring>
</property>
<property name="orientation">
<enum>Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
<widget class="TQLabel" row="0" column="9">
<property name="name">
<cstring>group8BitInputValueText</cstring>
</property>
<property name="text">
<cstring></cstring>
</property>
<property name="alignment">
<set>AlignVCenter|AlignRight</set>
</property>
</widget>
</grid>
</widget>
@ -154,10 +177,115 @@
<cstring>group8BitOutputLED0</cstring>
</property>
</widget>
<widget class="TQLabel" row="0" column="8">
<spacer row="0" column="8">
<property name="name">
<cstring>unnamed_spacer</cstring>
</property>
<property name="orientation">
<enum>Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
<widget class="TQLabel" row="0" column="9">
<property name="name">
<cstring>group8BitOutputValueText</cstring>
</property>
<property name="text">
<cstring></cstring>
</property>
<property name="alignment">
<set>AlignVCenter|AlignRight</set>
</property>
</widget>
</grid>
</widget>
<widget class="TQGroupBox" row="0" column="1">
<property name="name">
<cstring>group4BitOutput</cstring>
</property>
<property name="title">
<string>4-Bit Input (Buttons)</string>
</property>
<grid>
<property name="name">
<cstring>unnamed_grid</cstring>
</property>
<widget class="FPGAPushButton" row="0" column="0">
<property name="name">
<cstring>group4BitInputLED3</cstring>
</property>
</widget>
<widget class="FPGAPushButton" row="0" column="1">
<property name="name">
<cstring>group4BitInputLED2</cstring>
</property>
</widget>
<widget class="FPGAPushButton" row="0" column="2">
<property name="name">
<cstring>group4BitInputLED1</cstring>
</property>
</widget>
<widget class="FPGAPushButton" row="0" column="3">
<property name="name">
<cstring>group4BitInputLED0</cstring>
</property>
</widget>
<widget class="TQLabel" row="0" column="4">
<property name="name">
<cstring>group4BitInputValueText</cstring>
</property>
<property name="alignment">
<set>AlignVCenter|AlignRight</set>
</property>
</widget>
</grid>
</widget>
<widget class="TQGroupBox" row="1" column="1">
<property name="name">
<cstring>group4BitOutput</cstring>
</property>
<property name="title">
<string>4-Bit Output Values</string>
</property>
<grid>
<property name="name">
<cstring>unnamed_grid</cstring>
</property>
<widget class="FPGALed" row="0" column="0">
<property name="name">
<cstring>group4BitOutputLED3</cstring>
</property>
</widget>
<widget class="FPGALed" row="0" column="1">
<property name="name">
<cstring>group4BitOutputLED2</cstring>
</property>
</widget>
<widget class="FPGALed" row="0" column="2">
<property name="name">
<cstring>group4BitOutputLED1</cstring>
</property>
</widget>
<widget class="FPGALed" row="0" column="3">
<property name="name">
<cstring>group4BitOutputLED0</cstring>
</property>
</widget>
<widget class="TQLabel" row="0" column="4">
<property name="name">
<cstring>group4BitOutputValueText</cstring>
</property>
<property name="alignment">
<set>AlignVCenter|AlignRight</set>
</property>
</widget>
</grid>
</widget>
@ -215,175 +343,30 @@
<property name="text">
<cstring></cstring>
</property>
<property name="alignment">
<set>AlignVCenter|AlignRight</set>
</property>
</widget>
</grid>
</widget>
<widget class="TQGroupBox" row="0" column="1" rowspan="3">
<widget class="TQGroupBox" row="2" column="1">
<property name="name">
<cstring>group4BitInput</cstring>
<cstring>groupGlobalControl</cstring>
</property>
<property name="title">
<string>Buttons:</string>
<string>Global Controls</string>
</property>
<grid>
<property name="name">
<cstring>unnamed_grid</cstring>
</property>
<widget class="TQLayoutWidget" row="0" column="1">
<widget class="TQPushButton" row="1" column="2">
<property name="name">
<cstring>unnamed_layout</cstring>
<cstring>groupGlobalControlResetButton</cstring>
</property>
<property name="text">
<cstring>Strobe User Logic Reset</cstring>
</property>
<grid>
<property name="name">
<cstring>unnamed_grid</cstring>
</property>
<widget class="TQLayoutWidget" row="0" column="1" colspan="2">
<property name="name">
<cstring>unnamed_layout</cstring>
</property>
<grid>
<property name="name">
<cstring>unnamed_grid</cstring>
</property>
<spacer row="0" column="0">
<property name="name">
<cstring>unnamed_spacer</cstring>
</property>
<property name="orientation">
<enum>Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
<widget class="FPGAPushButton" row="0" column="1">
<property name="name">
<cstring>group4BitInputLED0</cstring>
</property>
</widget>
<spacer row="0" column="2">
<property name="name">
<cstring>unnamed_spacer</cstring>
</property>
<property name="orientation">
<enum>Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</grid>
</widget>
<widget class="FPGAPushButton" row="1" column="0" rowspan="2">
<property name="name">
<cstring>group4BitInputLED3</cstring>
</property>
</widget>
<widget class="FPGAPushButton" row="1" column="3" rowspan="2">
<property name="name">
<cstring>group4BitInputLED1</cstring>
</property>
</widget>
<widget class="TQLayoutWidget" row="3" column="1" colspan="2">
<property name="name">
<cstring>unnamed_layout</cstring>
</property>
<grid>
<property name="name">
<cstring>unnamed_grid</cstring>
</property>
<spacer row="0" column="0">
<property name="name">
<cstring>unnamed_spacer</cstring>
</property>
<property name="orientation">
<enum>Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
<widget class="FPGAPushButton" row="0" column="1">
<property name="name">
<cstring>group4BitInputLED2</cstring>
</property>
</widget>
<spacer row="0" column="2">
<property name="name">
<cstring>unnamed_spacer</cstring>
</property>
<property name="orientation">
<enum>Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</grid>
</widget>
<widget class="TQLabel" row="1" column="1">
<property name="name">
<cstring>group4BitInputValueLabel</cstring>
</property>
<property name="text">
<cstring>In:</cstring>
</property>
<property name="alignment">
<set>AlignBottom|AlignLeft</set>
</property>
</widget>
<widget class="TQLabel" row="2" column="1">
<property name="name">
<cstring>group4BitOutputValueLabel</cstring>
</property>
<property name="text">
<cstring>Out:</cstring>
</property>
<property name="alignment">
<set>AlignTop|AlignLeft</set>
</property>
</widget>
<widget class="TQLabel" row="1" column="2">
<property name="name">
<cstring>group4BitInputValueText</cstring>
</property>
<property name="alignment">
<set>AlignBottom|AlignRight</set>
</property>
</widget>
<widget class="TQLabel" row="2" column="2">
<property name="name">
<cstring>group4BitOutputValueText</cstring>
</property>
<property name="alignment">
<set>AlignTop|AlignRight</set>
</property>
</widget>
</grid>
</widget>
</grid>
</widget>

@ -589,7 +589,7 @@ FPGAViewPart::FPGAViewPart(TQWidget *parentWidget, const char *widgetName, TQObj
: RemoteInstrumentPart( parent, name ), m_base(NULL), m_interfaceMode(BasicInterfaceMode),
m_commHandlerState(0), m_commHandlerMode(0), m_commHandlerNextState(0), m_commHandlerNextMode(0), m_connectionActiveAndValid(false), m_tickerState(0), m_remoteInputModeEnabled(false), m_4bitInputValue(0), m_4bitOutputValue(0),
m_8bitInputValue(0), m_8bitOutputValue(0), m_16bitInputValue(0), m_16bitOutputValue(0), m_7segDigit3OutputValue(0xff),
m_7segDigit2OutputValue(0xff), m_7segDigit1OutputValue(0xff), m_7segDigit0OutputValue(0xff),
m_7segDigit2OutputValue(0xff), m_7segDigit1OutputValue(0xff), m_7segDigit0OutputValue(0xff), m_sendingUserLogicReset(false),
m_batchOutputFile(NULL), m_dataOutputFile(NULL), m_dataMemorySize(16384), m_dataMemorySizePrev(0),
m_dataMemoryImageWidth(128), m_dataMemoryImageHeight(128),
m_inputImageViewer(NULL), m_outputImageViewer(NULL)
@ -637,15 +637,14 @@ FPGAViewPart::FPGAViewPart(TQWidget *parentWidget, const char *widgetName, TQObj
m_modeSubMenu->insert(m_modeAdvancedEnabled);
// Initialize widgets
m_base->group4BitInputValueLabel->setFixedSize(LED_BASE_SIZE*2, LED_BASE_SIZE*2);
m_base->group4BitOutputValueLabel->setFixedSize(LED_BASE_SIZE*2, LED_BASE_SIZE*2);
m_base->group4BitInputValueText->setFixedSize(LED_BASE_SIZE*2, LED_BASE_SIZE*2);
m_base->group4BitOutputValueText->setFixedSize(LED_BASE_SIZE*2, LED_BASE_SIZE*2);
m_base->group4BitInputLED3->setFixedSize(LED_SIZE);
m_base->group4BitInputLED2->setFixedSize(LED_SIZE);
m_base->group4BitInputLED1->setFixedSize(LED_SIZE);
m_base->group4BitInputLED0->setFixedSize(LED_SIZE);
m_base->group4BitOutputLED3->setFixedSize(LED_SIZE);
m_base->group4BitOutputLED2->setFixedSize(LED_SIZE);
m_base->group4BitOutputLED1->setFixedSize(LED_SIZE);
m_base->group4BitOutputLED0->setFixedSize(LED_SIZE);
m_base->group8BitInputLED7->setFixedSize(LED_SIZE);
m_base->group8BitInputLED6->setFixedSize(LED_SIZE);
m_base->group8BitInputLED5->setFixedSize(LED_SIZE);
@ -667,6 +666,10 @@ FPGAViewPart::FPGAViewPart(TQWidget *parentWidget, const char *widgetName, TQObj
m_base->group4BitInputLED2->setState(KLed::Off);
m_base->group4BitInputLED1->setState(KLed::Off);
m_base->group4BitInputLED0->setState(KLed::Off);
m_base->group4BitOutputLED3->setState(KLed::Off);
m_base->group4BitOutputLED2->setState(KLed::Off);
m_base->group4BitOutputLED1->setState(KLed::Off);
m_base->group4BitOutputLED0->setState(KLed::Off);
m_base->group8BitInputLED7->setState(KLed::Off);
m_base->group8BitInputLED6->setState(KLed::Off);
m_base->group8BitInputLED5->setState(KLed::Off);
@ -684,6 +687,10 @@ FPGAViewPart::FPGAViewPart(TQWidget *parentWidget, const char *widgetName, TQObj
m_base->group8BitOutputLED1->setState(KLed::Off);
m_base->group8BitOutputLED0->setState(KLed::Off);
m_base->group4BitOutputLED3->setClickable(false);
m_base->group4BitOutputLED2->setClickable(false);
m_base->group4BitOutputLED1->setClickable(false);
m_base->group4BitOutputLED0->setClickable(false);
m_base->group8BitOutputLED7->setClickable(false);
m_base->group8BitOutputLED6->setClickable(false);
m_base->group8BitOutputLED5->setClickable(false);
@ -693,6 +700,12 @@ FPGAViewPart::FPGAViewPart(TQWidget *parentWidget, const char *widgetName, TQObj
m_base->group8BitOutputLED1->setClickable(false);
m_base->group8BitOutputLED0->setClickable(false);
#if 0
TQFontMetrics group8BitTextMetrics(m_base->group8BitOutputValueText->font());
m_base->group8BitInputValueText->setFixedSize(group8BitTextMetrics.width("0000"), group8BitTextMetrics.height());
m_base->group8BitOutputValueText->setFixedSize(group8BitTextMetrics.width("0000"), group8BitTextMetrics.height());
#endif
connect(m_base->group4BitInputLED3, SIGNAL(changed()), this, SLOT(process4BitInputChanges()));
connect(m_base->group4BitInputLED2, SIGNAL(changed()), this, SLOT(process4BitInputChanges()));
connect(m_base->group4BitInputLED1, SIGNAL(changed()), this, SLOT(process4BitInputChanges()));
@ -744,6 +757,7 @@ FPGAViewPart::FPGAViewPart(TQWidget *parentWidget, const char *widgetName, TQObj
m_base->LCDOutputLabel->setFixedSize(lcdwidth, lcdheight);
m_base->frameLCDDisplay->setFrameStyle(TQFrame::Box | TQFrame::Raised);
connect(m_base->groupGlobalControlResetButton, SIGNAL(clicked()), this, SLOT(groupGlobalControlResetButtonClicked()));
connect(m_base->batchTestRunButton, SIGNAL(clicked()), this, SLOT(batchTestRunButtonClicked()));
connect(m_base->dataProcessingRunButton, SIGNAL(clicked()), this, SLOT(dataProcessingRunButtonClicked()));
@ -815,6 +829,12 @@ void FPGAViewPart::process4BitInputChanges() {
}
void FPGAViewPart::process4BitOutputChanges() {
// Write m_4bitOutputValue to LEDs
m_base->group4BitOutputLED3->setState((m_4bitOutputValue & 0x08)?KLed::On:KLed::Off);
m_base->group4BitOutputLED2->setState((m_4bitOutputValue & 0x04)?KLed::On:KLed::Off);
m_base->group4BitOutputLED1->setState((m_4bitOutputValue & 0x02)?KLed::On:KLed::Off);
m_base->group4BitOutputLED0->setState((m_4bitOutputValue & 0x01)?KLed::On:KLed::Off);
// Write m_4bitOutputValue to label
m_base->group4BitOutputValueText->setText(TQString("0x%1").arg(m_4bitOutputValue, 0, 16));
}
@ -862,13 +882,13 @@ void FPGAViewPart::process8BitInputChanges() {
m_base->group8BitInputLED0->setClickable(false);
}
m_base->group8BitInputValueText->setText(TQString("0x%1").arg(m_8bitInputValue, 0, 16));
m_base->group8BitInputValueText->setText(TQString("").sprintf("0x%02x", m_8bitInputValue));
if (m_remoteInputModeEnabled) {
m_base->group8BitInput->setTitle(i18n("8-Bit Input Values") + " [" + i18n("Remote Input Mode") + "]");
m_base->group8BitInput->setTitle(i18n("8-Bit Input (Switches)") + " [" + i18n("Remote Input Mode") + "]");
}
else {
m_base->group8BitInput->setTitle(i18n("8-Bit Input Values") + " [" + i18n("Local Input Mode") + "]");
m_base->group8BitInput->setTitle(i18n("8-Bit Input (Switches)") + " [" + i18n("Local Input Mode") + "]");
}
}
@ -895,7 +915,7 @@ void FPGAViewPart::process8BitOutputChanges() {
m_base->group8BitOutputLED1->setState((m_8bitOutputValue & 0x02)?KLed::On:KLed::Off);
m_base->group8BitOutputLED0->setState((m_8bitOutputValue & 0x01)?KLed::On:KLed::Off);
m_base->group8BitOutputValueText->setText(TQString("0x%1").arg(m_8bitOutputValue, 0, 16));
m_base->group8BitOutputValueText->setText(TQString("").sprintf("0x%02x", m_8bitOutputValue));
}
void FPGAViewPart::process16BitInputChanges() {
@ -905,7 +925,7 @@ void FPGAViewPart::process16BitInputChanges() {
void FPGAViewPart::process16BitOutputChanges() {
// Write m_16bitOutputValue to label
m_base->group16BitOutputValue->setText(TQString("0x%1").arg(m_16bitOutputValue, 0, 16));
m_base->group16BitOutputValue->setText(TQString("").sprintf("0x%04x", m_16bitOutputValue));
}
void FPGAViewPart::processLCDOutputChanges() {
@ -1012,6 +1032,7 @@ void FPGAViewPart::processLockouts() {
m_base->batchTestOutputFile->setEnabled(false);
m_base->batchTest16BitCheckBox->setEnabled(false);
m_base->batchTestRunButton->setEnabled(false);
m_base->groupGlobalControlResetButton->setEnabled(false);
}
else {
m_base->batchTestInputFile->setEnabled(true);
@ -1035,6 +1056,7 @@ void FPGAViewPart::processLockouts() {
m_base->dataProcessingOutputFile->setEnabled(false);
m_base->dataProcessingGenerateValidationString->setEnabled(false);
m_base->dataProcessingRunButton->setEnabled(false);
m_base->groupGlobalControlResetButton->setEnabled(false);
}
else {
m_base->dataProcessingInputFile->setEnabled(true);
@ -1047,6 +1069,7 @@ void FPGAViewPart::processLockouts() {
if ((m_connectionActiveAndValid == true) && (m_commHandlerMode == 0)) {
m_base->dataProcessingStatusLabel->setText(i18n("Ready"));
m_base->groupGlobalControlResetButton->setEnabled(!m_sendingUserLogicReset);
}
}
@ -1125,6 +1148,11 @@ TQPtrList<TDEAction> FPGAViewPart::menuActionList() {
return m_menuActionList;
}
void FPGAViewPart::groupGlobalControlResetButtonClicked() {
m_sendingUserLogicReset = true;
processLockouts();
}
void FPGAViewPart::batchTestRunButtonClicked() {
m_commHandlerNextState = 0;
m_commHandlerNextMode = 1;
@ -1166,6 +1194,17 @@ void FPGAViewPart::sendInputStatesToRemoteFPGA() {
data[13] = '\r';
m_socket->writeBlock(data, 14);
m_socket->writeBufferedData();
if (m_sendingUserLogicReset) {
// Send user logic reset request
data[0] = 'R';
data[1] = '\r';
m_socket->writeBlock(data, 2);
m_socket->writeBufferedData();
m_sendingUserLogicReset = false;
processLockouts();
}
}
}

@ -199,6 +199,7 @@ namespace RemoteLab
void processLCDOutputChanges();
void process7SegmentLEDOutputChanges();
void groupGlobalControlResetButtonClicked();
void batchTestRunButtonClicked();
void dataProcessingRunButtonClicked();
@ -239,6 +240,7 @@ namespace RemoteLab
unsigned char m_7segDigit2OutputValue;
unsigned char m_7segDigit1OutputValue;
unsigned char m_7segDigit0OutputValue;
bool m_sendingUserLogicReset;
UnsignedIntegerList m_batchInputValueList;
UnsignedIntegerList m_batchOutputValueList;

@ -39,6 +39,7 @@ module main(
output reg userproc_start,
input userproc_done,
output reg userlogic_reset,
input [3:0] four_bit_leds,
input [7:0] eight_bit_leds,
@ -239,12 +240,18 @@ module main(
gpmc_advn_reg = gpmc_advn;
gpmc_oen_reg = gpmc_oen;
gpmc_wen_reg = gpmc_wen;
gpmc_data_reg = gpmc_data;
if (gpmc_wen_reg == 1'b0) begin
gpmc_data_reg = gpmc_data;
end
if (gpmc_advn_reg == 1'b0) begin
gpmc_address_reg = gpmc_address;
data_storage_write_enable = 1'b0;
lcd_data_storage_wea = 1'b0;
end
if (gpmc_wen_reg == 1'b1) begin
data_storage_write_enable = 1'b0;
lcd_data_storage_wea = 1'b0;
end
if (gpmc_address_reg[RAM_ADDR_BITS] == 1'b1) begin
// System memory access
@ -310,6 +317,8 @@ module main(
// Bit 0: User processing start
// Bit 1: User processing done (read only)
// 0x0b: Number of address bits of DSP RAM (read only)
// 0x0c: User device control
// Bit 0: User logic reset
// 0x20 - 0x3f: LCD data area
if (gpmc_wen_reg == 1'b0) begin
if (gpmc_address_reg[(RAM_ADDR_BITS-1):5] == 1) begin // Address range 0x20 - 0x3f
@ -333,6 +342,9 @@ module main(
10: begin
userproc_start = gpmc_data_reg[0];
end
12: begin
userlogic_reset = gpmc_data_reg[0];
end
default: begin
// Do nothing
end
@ -384,6 +396,10 @@ module main(
11: begin
gpmc_data_out = RAM_ADDR_BITS;
end
12: begin
gpmc_data_out[0] = userlogic_reset;
gpmc_data_out[7:1] = 0;
end
default: begin
gpmc_data_out = 0;
end

@ -1,130 +1,131 @@
# (c) 2013 Timothy Pearson, Raptor Engineering
# Released into the Public Domain
NET "clk" LOC = "V10" |IOSTANDARD = "LVCMOS33";
NET "clk" LOC = "V10" | IOSTANDARD = "LVCMOS33";
NET "clk" TNM_NET = clk;
TIMESPEC TS_clk = PERIOD "clk" 100000 KHz HIGH 50%;
#NET "serial_input" LOC = "T12" | IOSTANDARD = "LVCMOS33";
#NET "serial_output" LOC = "M10" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "gpmc_advn" LOC = "C5" |IOSTANDARD = "LVCMOS33";
NET "gpmc_oen" LOC = "A3" |IOSTANDARD = "LVCMOS33";
NET "gpmc_wen" LOC = "A5" |IOSTANDARD = "LVCMOS33";
NET "gpmc_advn" LOC = "C5" | IOSTANDARD = "LVCMOS33";
NET "gpmc_oen" LOC = "A3" | IOSTANDARD = "LVCMOS33";
NET "gpmc_wen" LOC = "A5" | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<0>" LOC = "A6" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "gpmc_data<1>" LOC = "C8" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "gpmc_data<2>" LOC = "C9" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "gpmc_data<3>" LOC = "A10" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "gpmc_data<4>" LOC = "C10" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "gpmc_data<5>" LOC = "D9" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "gpmc_data<6>" LOC = "D8" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "gpmc_data<7>" LOC = "B6" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "gpmc_data<0>" LOC = "A6" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<1>" LOC = "C8" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<2>" LOC = "C9" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<3>" LOC = "A10" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<4>" LOC = "C10" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<5>" LOC = "D9" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<6>" LOC = "D8" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "gpmc_data<7>" LOC = "B6" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<0>" LOC = "A11" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<1>" LOC = "F9" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<2>" LOC = "A9" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<3>" LOC = "A8" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<4>" LOC = "A7" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<5>" LOC = "C6" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<6>" LOC = "A4" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<7>" LOC = "A2" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<8>" LOC = "B11" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<9>" LOC = "G9" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<10>" LOC = "B9" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<11>" LOC = "B8" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<12>" LOC = "C7" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<13>" LOC = "D6" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<14>" LOC = "B4" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<15>" LOC = "B2" |IOSTANDARD = "LVCMOS33";
NET "gpmc_address<0>" LOC = "A11" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<1>" LOC = "F9" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<2>" LOC = "A9" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<3>" LOC = "A8" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<4>" LOC = "A7" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<5>" LOC = "C6" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<6>" LOC = "A4" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<7>" LOC = "A2" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<8>" LOC = "B11" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<9>" LOC = "G9" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<10>" LOC = "B9" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<11>" LOC = "B8" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<12>" LOC = "C7" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<13>" LOC = "D6" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<14>" LOC = "B4" | IOSTANDARD = "LVCMOS33";
NET "gpmc_address<15>" LOC = "B2" | IOSTANDARD = "LVCMOS33";
NET "usermem_wen" LOC = "V16" |IOSTANDARD = "LVCMOS33";
NET "usermem_wait" LOC = "T18" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "userproc_start" LOC = "K16" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "userproc_done" LOC = "L13" |IOSTANDARD = "LVCMOS33";
NET "usermem_wen" LOC = "V16" | IOSTANDARD = "LVCMOS33";
NET "usermem_wait" LOC = "T18" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "userproc_start" LOC = "K16" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "userproc_done" LOC = "L13" | IOSTANDARD = "LVCMOS33";
NET "userlogic_reset" LOC = "E13" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<0>" LOC = "V14" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "usermem_data<1>" LOC = "T11" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "usermem_data<2>" LOC = "R11" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "usermem_data<3>" LOC = "T14" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "usermem_data<4>" LOC = "U16" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "usermem_data<5>" LOC = "T17" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "usermem_data<6>" LOC = "K15" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "usermem_data<7>" LOC = "L12" |SLEW = FAST |IOSTANDARD = "LVCMOS33";
NET "usermem_data<0>" LOC = "V14" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<1>" LOC = "T11" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<2>" LOC = "R11" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<3>" LOC = "T14" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<4>" LOC = "U16" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<5>" LOC = "T17" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<6>" LOC = "K15" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_data<7>" LOC = "L12" | SLEW = FAST | IOSTANDARD = "LVCMOS33";
NET "usermem_address<0>" LOC = "K12" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<1>" LOC = "L14" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<2>" LOC = "M14" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<3>" LOC = "L15" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<4>" LOC = "N15" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<5>" LOC = "P15" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<6>" LOC = "U17" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<7>" LOC = "U13" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<8>" LOC = "V13" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<9>" LOC = "U18" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<10>" LOC = "P16" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<11>" LOC = "N16" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<12>" LOC = "L16" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<13>" LOC = "N14" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<14>" LOC = "M13" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<15>" LOC = "K13" |IOSTANDARD = "LVCMOS33";
NET "usermem_address<0>" LOC = "K12" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<1>" LOC = "L14" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<2>" LOC = "M14" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<3>" LOC = "L15" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<4>" LOC = "N15" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<5>" LOC = "P15" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<6>" LOC = "U17" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<7>" LOC = "U13" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<8>" LOC = "V13" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<9>" LOC = "U18" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<10>" LOC = "P16" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<11>" LOC = "N16" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<12>" LOC = "L16" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<13>" LOC = "N14" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<14>" LOC = "M13" | IOSTANDARD = "LVCMOS33";
NET "usermem_address<15>" LOC = "K13" | IOSTANDARD = "LVCMOS33";
NET "four_bit_leds<0>" LOC = "G13" |IOSTANDARD = "LVCMOS33";
NET "four_bit_leds<1>" LOC = "H16" |IOSTANDARD = "LVCMOS33";
NET "four_bit_leds<2>" LOC = "G14" |IOSTANDARD = "LVCMOS33";
NET "four_bit_leds<3>" LOC = "F16" |IOSTANDARD = "LVCMOS33";
NET "four_bit_leds<0>" LOC = "G13" | IOSTANDARD = "LVCMOS33";
NET "four_bit_leds<1>" LOC = "H16" | IOSTANDARD = "LVCMOS33";
NET "four_bit_leds<2>" LOC = "G14" | IOSTANDARD = "LVCMOS33";
NET "four_bit_leds<3>" LOC = "F16" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<0>" LOC = "E18" |IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<1>" LOC = "C18" |IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<2>" LOC = "A15" |IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<3>" LOC = "A14" |IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<4>" LOC = "K14" |IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<5>" LOC = "H14" |IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<6>" LOC = "G18" |IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<7>" LOC = "F18" |IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<0>" LOC = "E18" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<1>" LOC = "C18" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<2>" LOC = "A15" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<3>" LOC = "A14" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<4>" LOC = "K14" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<5>" LOC = "H14" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<6>" LOC = "G18" | IOSTANDARD = "LVCMOS33";
NET "eight_bit_leds<7>" LOC = "F18" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<0>" LOC = "R10" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<1>" LOC = "T9" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<2>" LOC = "U7" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<3>" LOC = "R7" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<4>" LOC = "N5" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<5>" LOC = "R5" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<6>" LOC = "R3" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<7>" LOC = "T3" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<8>" LOC = "T5" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<9>" LOC = "P6" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<10>" LOC = "T7" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<11>" LOC = "V7" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<12>" LOC = "V9" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<13>" LOC = "T10" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<14>" LOC = "A12" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<15>" LOC = "B12" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io_wen" LOC = "C11" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io_mode" LOC = "D11" |IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<0>" LOC = "R10" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<1>" LOC = "T9" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<2>" LOC = "U7" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<3>" LOC = "R7" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<4>" LOC = "N5" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<5>" LOC = "R5" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<6>" LOC = "R3" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<7>" LOC = "T3" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<8>" LOC = "T5" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<9>" LOC = "P6" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<10>" LOC = "T7" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<11>" LOC = "V7" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<12>" LOC = "V9" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<13>" LOC = "T10" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<14>" LOC = "A12" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io<15>" LOC = "B12" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io_wen" LOC = "C11" | IOSTANDARD = "LVCMOS33";
NET "sixteen_bit_io_mode" LOC = "D11" | IOSTANDARD = "LVCMOS33";
NET "four_bit_switches<0>" LOC = "H12" |SLEW = SLOW |IOSTANDARD = "LVCMOS33";
NET "four_bit_switches<1>" LOC = "H15" |SLEW = SLOW |IOSTANDARD = "LVCMOS33";
NET "four_bit_switches<2>" LOC = "F14" |SLEW = SLOW |IOSTANDARD = "LVCMOS33";
NET "four_bit_switches<3>" LOC = "F15" |SLEW = SLOW |IOSTANDARD = "LVCMOS33";
NET "four_bit_switches<0>" LOC = "H12" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "four_bit_switches<1>" LOC = "H15" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "four_bit_switches<2>" LOC = "F14" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "four_bit_switches<3>" LOC = "F15" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<0>" LOC = "E16" |SLEW = SLOW |IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<1>" LOC = "C17" |SLEW = SLOW |IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<2>" LOC = "C15" |SLEW = SLOW |IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<3>" LOC = "B14" |SLEW = SLOW |IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<4>" LOC = "J13" |SLEW = SLOW |IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<5>" LOC = "H13" |SLEW = SLOW |IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<6>" LOC = "G16" |SLEW = SLOW |IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<7>" LOC = "F17" |SLEW = SLOW |IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<0>" LOC = "E16" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<1>" LOC = "C17" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<2>" LOC = "C15" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<3>" LOC = "B14" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<4>" LOC = "J13" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<5>" LOC = "H13" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<6>" LOC = "G16" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "eight_bit_switches<7>" LOC = "F17" | SLEW = SLOW | IOSTANDARD = "LVCMOS33";
NET "sseg_mux<0>" LOC = "U11" |IOSTANDARD = "LVCMOS33";
NET "sseg_mux<1>" LOC = "R8" |IOSTANDARD = "LVCMOS33";
NET "sseg_mux<2>" LOC = "U8" |IOSTANDARD = "LVCMOS33";
NET "sseg_mux<3>" LOC = "T6" |IOSTANDARD = "LVCMOS33";
NET "sseg_mux<0>" LOC = "U11" | IOSTANDARD = "LVCMOS33";
NET "sseg_mux<1>" LOC = "R8" | IOSTANDARD = "LVCMOS33";
NET "sseg_mux<2>" LOC = "U8" | IOSTANDARD = "LVCMOS33";
NET "sseg_mux<3>" LOC = "T6" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<0>" LOC = "U5" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<1>" LOC = "T4" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<2>" LOC = "V4" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<3>" LOC = "V5" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<4>" LOC = "V6" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<5>" LOC = "V8" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<6>" LOC = "T8" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<7>" LOC = "V11" | IOSTANDARD = "LVCMOS33";
NET "sseg_data<0>" LOC = "U5" |IOSTANDARD = "LVCMOS33";
NET "sseg_data<1>" LOC = "T4" |IOSTANDARD = "LVCMOS33";
NET "sseg_data<2>" LOC = "V4" |IOSTANDARD = "LVCMOS33";
NET "sseg_data<3>" LOC = "V5" |IOSTANDARD = "LVCMOS33";
NET "sseg_data<4>" LOC = "V6" |IOSTANDARD = "LVCMOS33";
NET "sseg_data<5>" LOC = "V8" |IOSTANDARD = "LVCMOS33";
NET "sseg_data<6>" LOC = "T8" |IOSTANDARD = "LVCMOS33";
NET "sseg_data<7>" LOC = "V11" |IOSTANDARD = "LVCMOS33";
#Created by Constraints Editor (xc6slx9-csg324-3) - 2014/01/09
NET "clk" TNM_NET = clk;

@ -326,6 +326,7 @@
<property xil_pn:name="Use Synchronous Reset" xil_pn:value="Auto" xil_pn:valueState="default"/>
<property xil_pn:name="Use Synchronous Set" xil_pn:value="Auto" xil_pn:valueState="default"/>
<property xil_pn:name="Use Synthesis Constraints File" xil_pn:value="true" xil_pn:valueState="default"/>
<property xil_pn:name="User Browsed Strategy Files" xil_pn:value="" xil_pn:valueState="default"/>
<property xil_pn:name="UserID Code (8 Digit Hexadecimal)" xil_pn:value="0xFFFFFFFF" xil_pn:valueState="default"/>
<property xil_pn:name="VCCAUX Voltage Level spartan6" xil_pn:value="2.5V" xil_pn:valueState="default"/>
<property xil_pn:name="VHDL Source Analysis Standard" xil_pn:value="VHDL-93" xil_pn:valueState="default"/>

@ -292,6 +292,6 @@ int main(int argc, char *argv[])
fclose(bitfile);
freebh(&bh);
fprintf(stderr,"Process finsished sucefully.\n");
fprintf(stderr,"Process finished successfully.\n");
return 0;
}

Loading…
Cancel
Save