The company I work for has several old Digilent Spartan 3 development boards that are still being used in some custom test equipment. I am tasked with finding a suitable replacement development board to create more of the same test equipment. The old Spartan 3 boards are no longer available. I chose the CMOD S6 which meets the requirements as a replacement. I have to tried to port over the old code to the new CMOD S6 board. The operation of the FPGA is to receive serial data from a Pic Microcontroller which is receiving RS232 data from software running on a computer. The computer basically sends ASCII data to the PIC that then in turn sends serial data to the FPGA telling it to turn on one of 42 relays in the equipment. I have plenty of programming experience in Pic Microcontrollers, Arduinos, and ARM processors, as well as computer software such as LabVIEW and more. I have very little experience in VHDL and FPGAs. The issue I am having is I ported over the code to the CMOD S6, programming both the FPGA and Flash device in Xilinx ISE and Impact. The UART receive is not working on the FPGA. I modified the constraints to work with the CMOD S6 assigning ports to their proper pins. I don't think I have the timing correct (clock) that is used for the Baud generator mainly because I just don't have a good understanding of the clock the FPGA uses. I don't have the code with me right now as I'm at home. The question I have is the code uses clk16x as the source of the timing for the baud generator. The clock on the CMOD S6 is 8mhz. Does that mean clk16x ( which is clk16x : IN std_logic) is also at 8Mhz? Do I need to somehow define how clk16x gets it's timing or clock from? Maybe in timing constraints? Originally the clock on the old Spartan board was 50Mhz and the Baud generator used that for calculating the baud rate. Now I working with an system clock of 8Mhz. There is a way to create a 50mhz clock for the baud generator but I'm not sure how to do that yet and have it go to clk16x input. Help would be greatly appreciated. I'll attach the code later if needed.
Question
Bryan_S
The company I work for has several old Digilent Spartan 3 development boards that are still being used in some custom test equipment. I am tasked with finding a suitable replacement development board to create more of the same test equipment. The old Spartan 3 boards are no longer available. I chose the CMOD S6 which meets the requirements as a replacement. I have to tried to port over the old code to the new CMOD S6 board. The operation of the FPGA is to receive serial data from a Pic Microcontroller which is receiving RS232 data from software running on a computer. The computer basically sends ASCII data to the PIC that then in turn sends serial data to the FPGA telling it to turn on one of 42 relays in the equipment. I have plenty of programming experience in Pic Microcontrollers, Arduinos, and ARM processors, as well as computer software such as LabVIEW and more. I have very little experience in VHDL and FPGAs. The issue I am having is I ported over the code to the CMOD S6, programming both the FPGA and Flash device in Xilinx ISE and Impact. The UART receive is not working on the FPGA. I modified the constraints to work with the CMOD S6 assigning ports to their proper pins. I don't think I have the timing correct (clock) that is used for the Baud generator mainly because I just don't have a good understanding of the clock the FPGA uses. I don't have the code with me right now as I'm at home. The question I have is the code uses clk16x as the source of the timing for the baud generator. The clock on the CMOD S6 is 8mhz. Does that mean clk16x ( which is clk16x : IN std_logic) is also at 8Mhz? Do I need to somehow define how clk16x gets it's timing or clock from? Maybe in timing constraints? Originally the clock on the old Spartan board was 50Mhz and the Baud generator used that for calculating the baud rate. Now I working with an system clock of 8Mhz. There is a way to create a 50mhz clock for the baud generator but I'm not sure how to do that yet and have it go to clk16x input. Help would be greatly appreciated. I'll attach the code later if needed.
Link to comment
Share on other sites
6 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.