So far, I've been relying on this video if I want to make custom IP and control it with just the SDK
It's gotten me through many things so far, but now I want to implement a design like this:
Previously, I had hardcoded the matrix entries for matrices A and B. What I want to do is to use Vivado SDK to write what the matrix entries of matrices A and B are. Then, I want to flip a physical switch on the BASYS 3 board and use the Verilog logic I have already got working on the Verilog-only implementation of this model to multiply matrices A and B together and store the contents in matrix Z. The results of the multiplication can be viewed by flipping another physical switch, at which point they will be displayed on the four 7-segment displays (for simplicity, the matrix entries are between 1 and 2, so the largest possible resultant entry is 8).
The matrix A, B, and Z entries I know how to read and write with Vivado SDK. The way I usually do this is to create an IP with an AXI4 interface. However, the twist is that I want to control a few switches and an LED WITHOUT using Vivado SDK. I know that I could use the LED and Switch IP's by drag-and-dropping them onto a block design, but I only know how to control them with Vivado SDK. How can I create an IP where during runtime, I can have the FPGA (not Vivado SDK) monitor whether a switch has been pushed while still being able to change the contents of matrices A and B with Vivado SDK. Also, what do I need to do to be able to implement the a,b,c,d,e,f,g,and dp parts of the 7-segment display in the design?
In other words, in the video, he has a simple interface, no physical LEDs or switches used:
module myAdder8bit(
input CLK,
input A,
input B,
output S
);
and in the AXI4 wrapper, the user logic was something like this:
Question
electronicsdevices
So far, I've been relying on this video if I want to make custom IP and control it with just the SDK
It's gotten me through many things so far, but now I want to implement a design like this:
Previously, I had hardcoded the matrix entries for matrices A and B. What I want to do is to use Vivado SDK to write what the matrix entries of matrices A and B are. Then, I want to flip a physical switch on the BASYS 3 board and use the Verilog logic I have already got working on the Verilog-only implementation of this model to multiply matrices A and B together and store the contents in matrix Z. The results of the multiplication can be viewed by flipping another physical switch, at which point they will be displayed on the four 7-segment displays (for simplicity, the matrix entries are between 1 and 2, so the largest possible resultant entry is 8).
The matrix A, B, and Z entries I know how to read and write with Vivado SDK. The way I usually do this is to create an IP with an AXI4 interface. However, the twist is that I want to control a few switches and an LED WITHOUT using Vivado SDK. I know that I could use the LED and Switch IP's by drag-and-dropping them onto a block design, but I only know how to control them with Vivado SDK. How can I create an IP where during runtime, I can have the FPGA (not Vivado SDK) monitor whether a switch has been pushed while still being able to change the contents of matrices A and B with Vivado SDK. Also, what do I need to do to be able to implement the a,b,c,d,e,f,g,and dp parts of the 7-segment display in the design?
In other words, in the video, he has a simple interface, no physical LEDs or switches used:
module myAdder8bit(
input CLK,
input A,
input B,
output S
);
and in the AXI4 wrapper, the user logic was something like this:
myAdder8bit UIP ( .CLK(S_AXI_ACLK), .A(slv_reg0[7:0], .B(slv_reg0[15:8], .S(adder_out ) ;
all the parameters he needed, he found or made in the AXI4 wrapper verilog file.
If he amended the interface as follows:
module myAdder8bit(
input CLK,
input A,
input B,
input physicalSwitchOnTheBoard,
output S
);
and in the AXI4 wrapper, the user logic was something like this:
myAdder8bit UIP ( .CLK(S_AXI_ACLK), .A(slv_reg0[7:0], .B(slv_reg0[15:8], .physicalSwitchOnTheBoard( IDONTKNOWWHATTOPUTINHERE ) , .S(adder_out ) ;
what would I substitute in for "IDONTKNOWWHATTOPUTINHERE"?
Link to comment
Share on other sites
46 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.