mirror of https://github.com/openXC7/prjxray.git
roi_harness: inverted LED/switch example
Signed-off-by: John McMaster <johndmcmaster@gmail.com>
This commit is contained in:
parent
4b2c424e97
commit
4657677aad
|
|
@ -6,3 +6,4 @@
|
|||
/usage_statistics_webtalk.*
|
||||
/vivado*
|
||||
/design.txt
|
||||
/out_*
|
||||
|
|
|
|||
|
|
@ -10,3 +10,10 @@ There is no logic outside of the ROI in order to keep IOB to ROI delays short
|
|||
Its expected the end user will rip out everything inside the ROI
|
||||
|
||||
To target Arty A7 you should source the artix DB environment script then source arty.sh
|
||||
|
||||
To build the baseline harness:
|
||||
make
|
||||
|
||||
To build a sample design using the harness:
|
||||
XRAY_ROIV=roi_inv.v make
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
//Connect the switches to the LEDs, inverting the signal in the ROI
|
||||
//Assumes # inputs = # outputs
|
||||
|
||||
`include "defines.v"
|
||||
|
||||
module roi(input clk,
|
||||
input [DIN_N-1:0] din, output [DOUT_N-1:0] dout);
|
||||
parameter DIN_N = `DIN_N;
|
||||
parameter DOUT_N = `DOUT_N;
|
||||
wire [DIN_N-1:0] internal;
|
||||
|
||||
genvar i;
|
||||
generate
|
||||
//CLK
|
||||
(* KEEP, DONT_TOUCH *)
|
||||
reg clk_reg;
|
||||
always @(posedge clk) begin
|
||||
clk_reg <= clk_reg;
|
||||
end
|
||||
|
||||
//DIN
|
||||
for (i = 0; i < DIN_N; i = i+1) begin:ins
|
||||
//Very expensive inverter
|
||||
(* KEEP, DONT_TOUCH *)
|
||||
LUT6 #(
|
||||
.INIT(64'b01)
|
||||
) lut (
|
||||
.I0(din[i]),
|
||||
.I1(1'b0),
|
||||
.I2(1'b0),
|
||||
.I3(1'b0),
|
||||
.I4(1'b0),
|
||||
.I5(1'b0),
|
||||
.O(internal[i]));
|
||||
end
|
||||
|
||||
//DOUT
|
||||
for (i = 0; i < DOUT_N; i = i+1) begin:outs
|
||||
//Very expensive buffer
|
||||
(* KEEP, DONT_TOUCH *)
|
||||
LUT6 #(
|
||||
.INIT(64'b010)
|
||||
) lut (
|
||||
.I0(internal[i]),
|
||||
.I1(1'b0),
|
||||
.I2(1'b0),
|
||||
.I3(1'b0),
|
||||
.I4(1'b0),
|
||||
.I5(1'b0),
|
||||
.O(dout[i]));
|
||||
end
|
||||
endgenerate
|
||||
endmodule
|
||||
Loading…
Reference in New Issue