-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
52 changed files
with
145,469 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# TangNanoDCJ11MEM (unix-v1) | ||
![](../../images/unixv1_jumper.jpg) | ||
|
||
- SDメモリを使ったdiskエミュレータを作成し,UNIX V1を動かそうとしています. | ||
- まだかなり不安定で,ちょっと修正しただけで起動しなくなるのですが,とりあえず公開することにしました. | ||
- DMAの制御が面倒だったので、時分割された擬似dual port RAMを作ってディスクからメモリへの読み書きをしていますが、不安定なのはそのあたりが原因かもしれません。 | ||
|
||
## RF11(drum), RK11(disk)エミュレータ [sdhd.v](TangNanoDCJ11MEM_project/src/sdhd.v) | ||
- SDメモリはファイルシステム無しの生のままで使うのでddで読み書きします. | ||
- ブロックサイズ(BS)は512で,0〜1023ブロックがRF11,それ以降がRK11です. | ||
|
||
##とりあえず動かすための手順 | ||
- クロック用の水晶を4MHzにする | ||
- IRQ、EVENT用に下記ジャンパ配線をする。HALTはデバッグ用なので任意。HALTはスイッチと競合するので1kの抵抗を付けます。 | ||
``` | ||
IRQ1 --- LED1 | ||
IRQ2 --- LED2 | ||
EVENT_n --- LED4 | ||
HALT --- 1k 抵抗 --- LED5 | ||
``` | ||
- [jserv/unix-v1](https://github.com/jserv/unix-v1) からsimh用のunix-v1環境一式をmakeして作られる images/rf0.dsk, images/rk0.dsk からsd用のイメージsd.dskを作り、sdメモリに書き込む。(書き込み先のsdメモリが/dev/sdb で正しいかちゃんと確認すること。間違えるとPCのディスクを破壊します。) | ||
- 参考手順は下記の通り。 | ||
``` | ||
git clone https://github.com/jserv/unix-v1.git | ||
cd unix-v1 | ||
make | ||
dd if=/dev/zero of=sd.dsk bs=512 count=8192 | ||
dd if=images/rf0.dsk of=sd.dsk | ||
dd if=images/rk0.dsk of=sd.dsk bs=512 seek=1024 | ||
dd if=sd.dsk of=/dev/sdb | ||
``` | ||
|
||
## 既知のノウハウ | ||
- single user modeの方が起動しやすいです。177570番地の値を73700にして起動するとsingle user modeになります。 | ||
- 以前に起動した環境で起動しなくなったときは、sdメモリのディスクイメージが破壊されている可能性があるので、sd.dskに書き直します。 | ||
|
||
## 既知の問題 | ||
- リセット時間を250msから350msに変えただけで起動しなったりします。 | ||
- UARTの速度を変えただけで起動しなかったりします。 | ||
- UARTが不安定で文字化けします。 | ||
|
||
## 動画 | ||
- [UNIX V1 on DEC DCJ-11 with TangNano 20K (under development)](https://www.youtube.com/watch?v=DT7xJWeF46Y) |
15 changes: 15 additions & 0 deletions
15
applications/unix-v1/TangNanoDCJ11MEM_project/TangNanoDCJ11MEM_project.gprj
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
<?xml version="1" encoding="UTF-8"?> | ||
<!DOCTYPE gowin-fpga-project> | ||
<Project> | ||
<Template>FPGA</Template> | ||
<Version>5</Version> | ||
<Device name="GW2AR-18C" pn="GW2AR-LV18QN88C8/I7">gw2ar18c-000</Device> | ||
<FileList> | ||
<File path="src/integer_division/integer_division.v" type="file.verilog" enable="1"/> | ||
<File path="src/sdhd.v" type="file.verilog" enable="1"/> | ||
<File path="src/top.v" type="file.verilog" enable="1"/> | ||
<File path="src/uart.v" type="file.verilog" enable="1"/> | ||
<File path="src/ws2812.v" type="file.verilog" enable="1"/> | ||
<File path="src/tn20k.cst" type="file.cst" enable="1"/> | ||
</FileList> | ||
</Project> |
24 changes: 24 additions & 0 deletions
24
applications/unix-v1/TangNanoDCJ11MEM_project/TangNanoDCJ11MEM_project.gprj.user
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
<?xml version="1" encoding="UTF-8"?> | ||
<!DOCTYPE ProjectUserData> | ||
<UserConfig> | ||
<Version>1.0</Version> | ||
<FlowState> | ||
<Process ID="Synthesis" State="2"/> | ||
<Process ID="Pnr" State="2"/> | ||
<Process ID="Gao" State="2"/> | ||
<Process ID="Rtl_Gao" State="2"/> | ||
</FlowState> | ||
<ResultFileList> | ||
<ResultFile ResultFileType="RES.netlist" ResultFilePath="impl/gwsynthesis/TangNanoDCJ11MEM_project.vg"/> | ||
<ResultFile ResultFileType="RES.pnr.bitstream" ResultFilePath="impl/pnr/TangNanoDCJ11MEM_project.fs"/> | ||
<ResultFile ResultFileType="RES.pnr.pin.rpt" ResultFilePath="impl/pnr/TangNanoDCJ11MEM_project.pin.html"/> | ||
<ResultFile ResultFileType="RES.pnr.posp.bin" ResultFilePath="impl/pnr/TangNanoDCJ11MEM_project.db"/> | ||
<ResultFile ResultFileType="RES.pnr.pwr.rpt" ResultFilePath="impl/pnr/TangNanoDCJ11MEM_project.power.html"/> | ||
<ResultFile ResultFileType="RES.pnr.report" ResultFilePath="impl/pnr/TangNanoDCJ11MEM_project.rpt.html"/> | ||
<ResultFile ResultFileType="RES.pnr.timing.paths" ResultFilePath="impl/pnr/TangNanoDCJ11MEM_project.timing_paths"/> | ||
<ResultFile ResultFileType="RES.pnr.timing.rpt" ResultFilePath="impl/pnr/TangNanoDCJ11MEM_project.tr.html"/> | ||
<ResultFile ResultFileType="RES.syn.report" ResultFilePath="impl/gwsynthesis/TangNanoDCJ11MEM_project_syn.rpt.html"/> | ||
<ResultFile ResultFileType="RES.syn.resource" ResultFilePath="impl/gwsynthesis/TangNanoDCJ11MEM_project_syn_rsc.xml"/> | ||
</ResultFileList> | ||
<Ui>000000ff00000001fd000000020000000000000100000001dffc0200000001fc00000037000001df0000000000fffffffaffffffff0200000003fb00000030004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00440065007300690067006e0100000000ffffffff0000000000000000fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00500072006f00630065007300730100000000ffffffff0000000000000000fb00000036004600700067006100500072006f006a006500630074002e00500061006e0065006c002e0048006900650072006100720063006800790100000000ffffffff0000000000000000000000030000062a00000139fc0100000001fc000000000000062a000000a700fffffffa000000000100000002fb00000032004600700067006100500072006f006a006500630074002e00500061006e0065006c002e00470065006e006500720061006c0100000000ffffffff0000005100fffffffb0000002e004600700067006100500072006f006a006500630074002e00500061006e0065006c002e004900730073007500650100000000ffffffff000000a700ffffff00000526000001df00000004000000040000000800000008fc000000010000000200000003000000220043006f00720065002e0054006f006f006c006200610072002e00460069006c00650100000000ffffffff0000000000000000000000220043006f00720065002e0054006f006f006c006200610072002e004500640069007401000000adffffffff0000000000000000000000240043006f00720065002e0054006f006f006c006200610072002e0054006f006f006c0073010000017fffffffff0000000000000000</Ui> | ||
</UserConfig> |
88 changes: 88 additions & 0 deletions
88
...ations/unix-v1/TangNanoDCJ11MEM_project/impl/TangNanoDCJ11MEM_project_process_config.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
{ | ||
"BACKGROUND_PROGRAMMING" : "off", | ||
"COMPRESS" : false, | ||
"CPU" : false, | ||
"CRC_CHECK" : true, | ||
"Clock_Route_Order" : 0, | ||
"Correct_Hold_Violation" : true, | ||
"DONE" : false, | ||
"DOWNLOAD_SPEED" : "default", | ||
"Disable_Insert_Pad" : false, | ||
"ENABLE_CTP" : false, | ||
"ENABLE_MERGE_MODE" : false, | ||
"ENCRYPTION_KEY" : false, | ||
"ENCRYPTION_KEY_TEXT" : "00000000000000000000000000000000", | ||
"ERROR_DECTION_AND_CORRECTION" : false, | ||
"ERROR_DECTION_ONLY" : false, | ||
"ERROR_INJECTION" : false, | ||
"EXTERNAL_MASTER_CONFIG_CLOCK" : false, | ||
"Enable_DSRM" : false, | ||
"FORMAT" : "binary", | ||
"FREQUENCY_DIVIDER" : "", | ||
"Generate_Constraint_File_of_Ports" : false, | ||
"Generate_IBIS_File" : false, | ||
"Generate_Plain_Text_Timing_Report" : false, | ||
"Generate_Post_PNR_Simulation_Model_File" : false, | ||
"Generate_Post_Place_File" : false, | ||
"Generate_SDF_File" : false, | ||
"Generate_VHDL_Post_PNR_Simulation_Model_File" : false, | ||
"Global_Freq" : "default", | ||
"GwSyn_Loop_Limit" : 2000, | ||
"HOTBOOT" : false, | ||
"I2C" : false, | ||
"I2C_SLAVE_ADDR" : "00", | ||
"IncludePath" : [ | ||
|
||
], | ||
"Incremental_Compile" : "", | ||
"Initialize_Primitives" : false, | ||
"JTAG" : false, | ||
"MODE_IO" : false, | ||
"MSPI" : false, | ||
"MSPI_JUMP" : false, | ||
"MULTIBOOT_ADDRESS_WIDTH" : "24", | ||
"MULTIBOOT_MODE" : "Normal", | ||
"MULTIBOOT_SPI_FLASH_ADDRESS" : "00000000", | ||
"MULTIJUMP_ADDRESS_WIDTH" : "24", | ||
"MULTIJUMP_MODE" : "Normal", | ||
"MULTIJUMP_SPI_FLASH_ADDRESS" : "000000", | ||
"Multi_Boot" : true, | ||
"OUTPUT_BASE_NAME" : "TangNanoDCJ11MEM_project", | ||
"POWER_ON_RESET_MONITOR" : true, | ||
"PRINT_BSRAM_VALUE" : true, | ||
"PROGRAM_DONE_BYPASS" : false, | ||
"PlaceInRegToIob" : true, | ||
"PlaceIoRegToIob" : true, | ||
"PlaceOutRegToIob" : true, | ||
"Place_Option" : "0", | ||
"Process_Configuration_Verion" : "1.0", | ||
"Promote_Physical_Constraint_Warning_to_Error" : true, | ||
"READY" : false, | ||
"RECONFIG_N" : false, | ||
"Ram_RW_Check" : false, | ||
"Replicate_Resources" : false, | ||
"Report_Auto-Placed_Io_Information" : false, | ||
"Route_Maxfan" : 23, | ||
"Route_Option" : "0", | ||
"Run_Timing_Driven" : true, | ||
"SECURE_MODE" : false, | ||
"SECURITY_BIT" : true, | ||
"SEU_HANDLER" : false, | ||
"SEU_HANDLER_CHECKSUM" : false, | ||
"SEU_HANDLER_MODE" : "auto", | ||
"SSPI" : true, | ||
"STOP_SEU_HANDLER" : false, | ||
"Show_All_Warnings" : false, | ||
"Synthesize_tool" : "GowinSyn", | ||
"TclPre" : "", | ||
"TopModule" : "top", | ||
"USERCODE" : "default", | ||
"Unused_Pin" : "As_input_tri_stated_with_pull_up", | ||
"VCCAUX" : 3.3, | ||
"VCCX" : "3.3", | ||
"VHDL_Standard" : "VHDL_Std_1993", | ||
"Verilog_Standard" : "Vlg_Std_2001", | ||
"WAKE_UP" : "0", | ||
"show_all_warnings" : false, | ||
"turn_off_bg" : false | ||
} |
Oops, something went wrong.