From 55c00057584a53624753ddddaff81a0e5f472b56 Mon Sep 17 00:00:00 2001 From: bols Date: Fri, 12 Aug 2011 12:54:18 +0900 Subject: [PATCH] =?utf8?q?XUnit=E3=83=86=E3=82=B9=E3=83=88=E3=81=AE?= =?utf8?q?=E5=AE=9F=E8=A1=8C=E3=81=AB=E6=88=90=E5=8A=9F=E3=81=97=E3=81=9F?= =?utf8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- USB_Keybord_MAX3421E/src/Makefile | 2 +- USB_Keybord_MAX3421E/src/SPI_controler.sc | 46 +++++++++++++++ .../src/SPI_controler_test_case.cpp | 65 +++++++++++++--------- USB_Keybord_MAX3421E/src/SPI_controler_top.cpp | 9 ++- USB_Keybord_MAX3421E/src/SPI_controler_top.h | 1 + 5 files changed, 96 insertions(+), 27 deletions(-) create mode 100644 USB_Keybord_MAX3421E/src/SPI_controler.sc diff --git a/USB_Keybord_MAX3421E/src/Makefile b/USB_Keybord_MAX3421E/src/Makefile index 4852da3..9be96b7 100644 --- a/USB_Keybord_MAX3421E/src/Makefile +++ b/USB_Keybord_MAX3421E/src/Makefile @@ -1,8 +1,8 @@ SRCS=\ SPI_controler.nsl +#SPI_controler.cpp CPP_SRCS=\ -SPI_controler.cpp\ SPI_controler_test_case.cpp\ SPI_controler_top.cpp LDFLAGS= -L/home/bols/systemc-2.2.0/lib-linux diff --git a/USB_Keybord_MAX3421E/src/SPI_controler.sc b/USB_Keybord_MAX3421E/src/SPI_controler.sc new file mode 100644 index 0000000..2c41589 --- /dev/null +++ b/USB_Keybord_MAX3421E/src/SPI_controler.sc @@ -0,0 +1,46 @@ +/* + Produced by NSL Core(version=20110614), IP ARCH, Inc. Wed Aug 10 21:05:17 2011 + Licensed to :LIMITED EVALUATION USER: +*/ +/* + EVALUATION COPY! DO NOT USE ANY PART OF THIS FILE FOR COMMERCIAL PRODUCTS. +*/ +#include +template int _nsl_readmem(T array[], const char *file, int start, int end, int sft) ; + +SC_MODULE( spi_controler ) { +sc_in p_reset, m_clock; + sc_in > send_data; +sc_out > resv_data; +sc_in send; +sc_in read_MOSI; +sc_in write_MOSO; + sc_signal > output_data; + sc_signal > input_data; + sc_signal > work_flg; + +void _sc_method_output_data() { + +} +void _sc_method_input_data() { + +} +void _sc_method_work_flg() { + +} + SC_CTOR( spi_controler ) + : + output_data("output_data"), + input_data("input_data"), + work_flg("work_flg"), + send_data("send_data"), + resv_data("resv_data"), + p_reset("p_reset"), + m_clock("m_clock") + { +}; +}; +/* + Produced by NSL Core(version=20110614), IP ARCH, Inc. Wed Aug 10 21:05:17 2011 + Licensed to :LIMITED EVALUATION USER: +*/ diff --git a/USB_Keybord_MAX3421E/src/SPI_controler_test_case.cpp b/USB_Keybord_MAX3421E/src/SPI_controler_test_case.cpp index ee47381..1039603 100644 --- a/USB_Keybord_MAX3421E/src/SPI_controler_test_case.cpp +++ b/USB_Keybord_MAX3421E/src/SPI_controler_test_case.cpp @@ -3,51 +3,66 @@ // 以下はSPIControlerTestクラスの宣言----- class SPIControlerTest : public CPPUNIT_NS::TestFixture { // - CPPUNIT_TEST_SUITE( SPIControlerTest ); // - CPPUNIT_TEST( test_init ); // - CPPUNIT_TEST( test_incr ); // - CPPUNIT_TEST( test_clear ); // - CPPUNIT_TEST_SUITE_END(); // - -protected: - SPIControlerTop* c_; - -public: - void setUp(); // - void tearDown(); // - -protected: - void test_init(); // - void test_incr(); // - void test_clear(); // + CPPUNIT_TEST_SUITE( SPIControlerTest ); // + CPPUNIT_TEST( test_init ); // + CPPUNIT_TEST( test_incr ); // + CPPUNIT_TEST( test_clear ); // + CPPUNIT_TEST_SUITE_END(); // + + public: + SPIControlerTest(); + ~SPIControlerTest(); + void setUp(); // + void tearDown(); // + + protected: + void test_init(); // + void test_incr(); // + void test_clear(); // }; + SPIControlerTop* c_ ; // 以下はSPIControlerTestクラスの実装----- - CPPUNIT_TEST_SUITE_REGISTRATION( SPIControlerTest ); // +SPIControlerTest::SPIControlerTest( ) +{ + if(c_==NULL){ + c_ = new SPIControlerTop(); + } +} +SPIControlerTest::~SPIControlerTest( ) +{ + if(c_!=NULL){ + delete c_; + } +} // 各テスト・ケースの実行直前に呼ばれる void SPIControlerTest::setUp() { - c_ = new SPIControlerTop(); } // 各テスト・ケースの実行直後に呼ばれる void SPIControlerTest::tearDown() { - delete c_; } // これ以降はテスト・ケースの実装内容 void SPIControlerTest::test_init() { - CPPUNIT_ASSERT_EQUAL(0,(int) c_->read_MOSI()); // + c_->nextStep(); // + c_->reset(); + c_->nextStep(); // + CPPUNIT_ASSERT_EQUAL(0,(int) c_->read_MOSI()); // } void SPIControlerTest::test_incr() { - for ( int i = 1; i < 10; ++i ) { - CPPUNIT_ASSERT_EQUAL(i,(int) c_->read_MOSI()); // - } + for ( int i = 1; i < 10; ++i ) { + CPPUNIT_ASSERT_EQUAL(i,(int) c_->read_MOSI()); // + } } void SPIControlerTest::test_clear() { - CPPUNIT_ASSERT_EQUAL(0,(int) c_->read_MOSI()); // + c_->nextStep(); // + c_->reset(); + c_->nextStep(); // + CPPUNIT_ASSERT_EQUAL(0,(int) c_->read_MOSI()); // } diff --git a/USB_Keybord_MAX3421E/src/SPI_controler_top.cpp b/USB_Keybord_MAX3421E/src/SPI_controler_top.cpp index 3dcc022..779c96a 100644 --- a/USB_Keybord_MAX3421E/src/SPI_controler_top.cpp +++ b/USB_Keybord_MAX3421E/src/SPI_controler_top.cpp @@ -5,7 +5,7 @@ /* EVALUATION COPY! DO NOT USE ANY PART OF THIS FILE FOR COMMERCIAL PRODUCTS. */ -#include "SPI_controler.h" +#include "SPI_controler.sc" #include #include #include @@ -111,6 +111,7 @@ sc_signal write_MOSO; spi_controler.send(send); spi_controler.read_MOSI(read_MOSI); spi_controler.write_MOSO(write_MOSO); + sc_start(10, SC_NS); } SPIControlerTop::~SPIControlerTop() @@ -120,6 +121,12 @@ SPIControlerTop::~SPIControlerTop() void SPIControlerTop::nextStep() { + sc_start(100, SC_NS); +} + +void SPIControlerTop::reset() +{ + ctrl_clock = 0; } void SPIControlerTop::send() diff --git a/USB_Keybord_MAX3421E/src/SPI_controler_top.h b/USB_Keybord_MAX3421E/src/SPI_controler_top.h index 26e4914..d93d55c 100644 --- a/USB_Keybord_MAX3421E/src/SPI_controler_top.h +++ b/USB_Keybord_MAX3421E/src/SPI_controler_top.h @@ -13,6 +13,7 @@ public : void nextStep(); void send(); char read_MOSI(); + void reset(); void write_MOSO(char send_data); }; -- 2.11.0