mirror of
https://github.com/LIV2/RIDE.git
synced 2025-12-06 04:22:43 +00:00
Add CDTV Build
This commit is contained in:
parent
3e3750b2c6
commit
55bb5a8c75
1714
Binary/RIDE-CDTV.jed
Normal file
1714
Binary/RIDE-CDTV.jed
Normal file
File diff suppressed because it is too large
Load Diff
2078
Binary/RIDE.jed
2078
Binary/RIDE.jed
File diff suppressed because it is too large
Load Diff
10
README.md
10
README.md
@ -52,9 +52,15 @@ Alternatively you can add the `bootrom` module to a custom kickstart so that thi
|
||||
|
||||
## Programming
|
||||
|
||||
Program the CPLD using this [jed file](https://github.com/LIV2/RIDE/raw/master/Binary/RIDE.jed) - You can find instructions on how to do that [here](https://linuxjedi.co.uk/2020/12/01/programming-xilinx-jtag-from-a-raspberry-pi/)
|
||||
Program the CPLD using the relevant .jed file below (Right-click, Save as)
|
||||
|Model|File|
|
||||
|-----|----|
|
||||
|A500(+)<br />A1000<br />A2000|[RIDE.jed](https://github.com/LIV2/RIDE/raw/master/Binary/RIDE.jed)|
|
||||
|CDTV|[RIDE-CDTV.jed](https://github.com/LIV2/RIDE/raw/master/Binary/RIDE-CDTV.jed)|
|
||||
|
||||
IDE ROM can be programmed by booting from the latest lide-update.adf [here](https://github.com/LIV2/LIDE.device/releases/latest).
|
||||
You can find instructions on how to do that [here](https://linuxjedi.co.uk/2020/12/01/programming-xilinx-jtag-from-a-raspberry-pi/)
|
||||
|
||||
The IDE ROM can be programmed by booting from the latest lide-update.adf [here](https://github.com/LIV2/LIDE.device/releases/latest).
|
||||
|
||||
|
||||
## Ordering PCBs
|
||||
|
||||
23
rtl/Makefile
23
rtl/Makefile
@ -9,7 +9,7 @@ CPLDFITFLAGS=-loc on -slew slow -init low -terminate keeper -optimize density -k
|
||||
|
||||
.PHONY: all clean timing
|
||||
|
||||
all: $(PROJECT).jed timing
|
||||
all: $(PROJECT).jed $(PROJECT)-CDTV.jed timing
|
||||
|
||||
$(PROJECT).prj: *.v
|
||||
-$(shell rm -f $@)
|
||||
@ -20,12 +20,20 @@ $(WORKDIR)/$(PROJECT).ngc: *.v $(PROJECT).prj
|
||||
@sed -r "s#^(-ofn).*#\1 ..\/$@#g;s#^(-ifn).*#\1 ../$(PROJECT).prj#g;s#^(-define).*#\1 {$(DEFINES)}#g" template.xst > $@.xst
|
||||
cd $(WORKDIR) && xst -ifn ../$@.xst -ofn $(PROJECT)-xst.log
|
||||
|
||||
$(WORKDIR)/$(PROJECT)-CDTV.ngc: *.v $(PROJECT).prj
|
||||
-@mkdir $(WORKDIR)
|
||||
@sed -r "s#^(-ofn).*#\1 ..\/$@#g;s#^(-ifn).*#\1 ../$(PROJECT).prj#g;s#^(-define).*#\1 {$(DEFINES) CDTV}#g" template.xst > $@.xst
|
||||
cd $(WORKDIR) && xst -ifn ../$@.xst -ofn $(PROJECT)-xst.log
|
||||
|
||||
$(WORKDIR)/%.ngd: $(WORKDIR)/%.ngc $(PROJECT).ucf
|
||||
cd $(WORKDIR) && ngdbuild -p $(PART) -uc ../$(PROJECT).ucf ../$< ../$@
|
||||
|
||||
$(WORKDIR)/%.rpt $(WORKDIR)/%.vm6: $(WORKDIR)/%.ngd $(PROJECT).ucf
|
||||
$(WORKDIR)/%.vm6: $(WORKDIR)/%.ngd $(PROJECT).ucf
|
||||
cd $(WORKDIR) && cpldfit $(CPLDFITFLAGS) -p $(PART) ../$< | egrep -v "^CS: block|^$$"
|
||||
cp $(WORKDIR)/$(PROJECT).rpt .
|
||||
|
||||
$(WORKDIR)/%.rpt: $(WORKDIR)/%.ngd $(PROJECT).ucf
|
||||
cd $(WORKDIR) && cpldfit $(CPLDFITFLAGS) -p $(PART) ../$< | egrep -v "^CS: block|^$$"
|
||||
cp $(WORKDIR)/$@.rpt .
|
||||
|
||||
%.jed: $(WORKDIR)/%.vm6
|
||||
hprep6 -i $<
|
||||
@ -53,3 +61,12 @@ flash: $(PROJECT).jed
|
||||
"erase -p 1\n"\
|
||||
"program -p 1\n"\
|
||||
"verify -p 1" | LD_PRELOAD=/opt/Xilinx/usb-driver/libusb-driver.so impact -batch
|
||||
|
||||
flash-cdtv: $(PROJECT)-CDTV.jed
|
||||
@echo "setMode -bs\n"\
|
||||
"setCable -p $(CABLE)\n"\
|
||||
"identify\n"\
|
||||
"assignfile -p 1 -file $<\n"\
|
||||
"erase -p 1\n"\
|
||||
"program -p 1\n"\
|
||||
"verify -p 1" | LD_PRELOAD=/opt/Xilinx/usb-driver/libusb-driver.so impact -batch
|
||||
|
||||
987
rtl/RIDE.rpt
987
rtl/RIDE.rpt
File diff suppressed because it is too large
Load Diff
877
rtl/RIDE.tim
877
rtl/RIDE.tim
File diff suppressed because it is too large
Load Diff
@ -47,7 +47,6 @@ reg ram_configured;
|
||||
reg ide_configured;
|
||||
|
||||
reg [2:0] ide_base;
|
||||
reg cdtv;
|
||||
reg cdtv_configured;
|
||||
reg cfgin;
|
||||
reg cfgout;
|
||||
@ -83,15 +82,11 @@ assign cfgout_n = ~cfgout;
|
||||
// So we wait until it's configured before we talk
|
||||
always @(posedge clk or negedge reset_n) begin
|
||||
if (!reset_n) begin
|
||||
cdtv <= 0;
|
||||
cdtv_configured <= 0;
|
||||
end else begin
|
||||
if (addr[23:16] == 8'hE8 && addr[8:1] == 8'h24 && !as_n && !rw) begin
|
||||
cdtv_configured <= 1'b1;
|
||||
end
|
||||
if (addr[23:16] == 8'hE1 && !as_n && rw) begin // Read from CDTV NVRAM (won't work if CDTV switched to A500 mode...)
|
||||
cdtv <= 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -104,7 +99,7 @@ always @(posedge as_n or negedge reset_n) begin
|
||||
`ifdef CDTV
|
||||
cfgin <= ~cfgin_n && cdtv_configured;
|
||||
`else
|
||||
cfgin <= ~cfgin_n && (!cdtv || cdtv_configured);
|
||||
cfgin <= ~cfgin_n;
|
||||
`endif
|
||||
cfgout <= (ac_state == ac_done);
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user