diff options
| author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2014-01-10 23:13:22 -0600 |
|---|---|---|
| committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2014-01-10 23:13:22 -0600 |
| commit | 0ffb793cb56ec10a43ae241299b347bc4fef7b5c (patch) | |
| tree | 19a1f24d715f08da35f137c4b80c5bd1d58e65fa /fpga/gpmc/xilinx/common | |
| parent | 37420cfb78718d7a7ac9bfde754fbd62c6d29f2c (diff) | |
| download | ulab-0ffb793cb56ec10a43ae241299b347bc4fef7b5c.tar.gz ulab-0ffb793cb56ec10a43ae241299b347bc4fef7b5c.zip | |
Relayout the GUI to be more in line with expected norms
Add user logic reset signal
Stabilize data transfer
Diffstat (limited to 'fpga/gpmc/xilinx/common')
| -rw-r--r-- | fpga/gpmc/xilinx/common/main.v | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/fpga/gpmc/xilinx/common/main.v b/fpga/gpmc/xilinx/common/main.v index a54de0d..a06565a 100644 --- a/fpga/gpmc/xilinx/common/main.v +++ b/fpga/gpmc/xilinx/common/main.v @@ -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 |
