package synthesijer.hdl.sample; import java.io.IOException; import synthesijer.hdl.HDLModule; import synthesijer.hdl.HDLOp; import synthesijer.hdl.HDLPort; import synthesijer.hdl.HDLPrimitiveType; import synthesijer.hdl.HDLSequencer; import synthesijer.hdl.HDLSignal; import synthesijer.hdl.HDLUtils; import synthesijer.hdl.sequencer.SequencerState; public class LED extends HDLModule{ public LED(){ super("led", "clk", "reset"); HDLPort q = newPort("q", HDLPort.DIR.OUT, HDLPrimitiveType.genBitType()); // q <= counter(24) HDLSignal sig = q.getSignal(); HDLSignal counter = newSignal("counter", HDLPrimitiveType.genSignedType(32)); sig.setAssign(null, newExpr(HDLOp.REF, counter, 5)); // at main state, counter <= counter + 1 HDLSequencer seq = newSequencer("main"); SequencerState ss = seq.getIdleState(); counter.setAssign(ss, newExpr(HDLOp.ADD, counter, 1)); } public static void main(String... args) throws IOException{ LED led = new LED(); BasicSim sim = new BasicSim(led, "led_sim"); HDLUtils.generate(led, HDLUtils.VHDL); HDLUtils.generate(led, HDLUtils.Verilog); HDLUtils.generate(sim, HDLUtils.VHDL); HDLUtils.generate(sim, HDLUtils.Verilog); } }