--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>PS2key</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>jp.co.overtone.nslplugin_core.NSLToVerilogProjectBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>jp.co.overtone.nslplugin_core.NSLToVHDLProjectBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>jp.co.overtone.nslplugin_core.NSLToSystemCProjectBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>jp.co.overtone.nslplugin_core.NSLPlojectNature</nature>
+ </natures>
+</projectDescription>
--- /dev/null
+declare IOrach interface{
+ input datain;
+ input m_clock;
+ output dataout ;
+}
--- /dev/null
+#include <IOrach.nsh>
+module IOrach{
+ reg buff[2];
+
+ {
+ buff := {buff[0],datain};
+ dataout = buff[1];
+ }
+
+}
--- /dev/null
+declare keyboarddata{
+ input datain,sync;
+ output outputByteE;
+}
--- /dev/null
+#include "keyboarddata.nsh"
+
+module keyboarddata{
+ reg old_sync;
+ func_self syncdata;
+ reg KBdata[11],dataCount[4]=0;
+
+ {
+ if((old_sync ==0)&&(sync==1)){
+ syncdata();
+ }
+ old_sync := sync;
+ if(dataCount ==12){
+ outputByteE = 1;
+ }
+ }
+ func syncdata{
+ dataCount := dataCount + 1;
+ KBdata := {KBdata[9:0],datain};
+ }
+}
--- /dev/null
+#include "IOrach.nsh"
+#include "keyboarddata.nsh"
+
+declare top{
+ input KBClock,KBData;
+}
+module top{
+ IOrach kbrach;
+ keyboarddata kbdata;
+ {
+ kbrach.m_clock = KBClock;
+ kbrach.datain = KBData;
+ kbdata.datain = kbrach.dataout;
+ kbdata.sync = KBData;
+ }
+}