Sha256: 6684099650c7d17dce21c9554ccebd02899c08dcf179bddb6051ee61f8b06903
Contents?: true
Size: 1.1 KB
Versions: 3
Compression:
Stored size: 1.1 KB
Contents
require 'spec' module RegisterInterface NUM_REGS = DUT.register.size def set_registers(vals) raise ArgumentError if vals.length > NUM_REGS DUT.rw.intVal = 1 vals.each_with_index do |val, i| DUT.wtReg.intVal = i DUT.inBus.intVal = val DUT.cycle! end end def expect_registers(vals) raise ArgumentError if vals.length > NUM_REGS DUT.rw.intVal = 0 vals.each_with_index do |val, i| DUT.rdReg.intVal = i DUT.cycle! DUT.outBus.intVal.should == val end end end describe "A #{DUT.name}, when enabled" do include RegisterInterface before do DUT.reset! DUT.enable.intVal = 1 end it "should be able to write and then read registers" do testVals = [1, 7, 3, 12] set_registers(testVals) expect_registers(testVals) end end describe "A #{DUT.name}, when disabled" do include RegisterInterface before do DUT.reset! DUT.enable.intVal = 0 end it "should not write new values" do zeros = [0, 0, 0, 0] testVals = [1, 7, 3, 12] set_registers(testVals) expect_registers(zeros) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ruby-vpi-20.0.0 | examples/register_file/register_file_spec.rb |
ruby-vpi-21.0.0 | examples/register_file/register_file_spec.rb |
ruby-vpi-21.1.0 | examples/register_file/register_file_spec.rb |