⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fun.h

📁 system c 是在C环境下的硬件描述语言,比VHDL 等语言具有更强的抽象能力,内有system C的开发支持库和一些VC下的开发例程
💻 H
字号:
#include "systemc.h"SC_MODULE(fun){  // ports  //  sc_inslave<int, sc_memenHandshake<int,1,1> > op1;  sc_inslave<int, sc_memenHandshake<int,1,1> > op2;  sc_inslave<int, sc_memenHandshake<int,1,1> > cmd;  sc_outslave<int, sc_memenHandshake<int,1,1> > result;  sc_in_clk clk;  sc_in<int> rstp;  // sc_bit s;    int operand1;  int operand2;  int command;  int x;    void fun_thread ()    {      while(1)      {      wait();      if (rstp == 0) 	{	  operand1 = 0;	  operand2 = 0;	  command = 1;	  result.d = 0;	}      else 	{	  if (op1.en == true) 	      operand1 = op1.d;	// read operand 1	  if (op2.en == true) 	      operand2 = op2.d;       	// read operand 2	  if (cmd.en == true) 	      command = cmd.d;		// read command	  if (result.en == true) 	    {	      switch (command) 		{		case 1 :		  result.d = x = operand1 + operand2;	// Add                  cout << "cmd = ADD " << "  op1 = " << operand1;                  cout << "  op2 = " << operand2 << "  result = " << x << endl;		  // s = x;		  // result.d = s;		  // cout << "value of terminal d = " << s << endl;		  // result.d = x;		  break;		case 2 :		  result.d = x = operand1 - operand2;	// Subtract                  cout << "cmd = SUB " << "  op1 = " << operand1;                  cout << "  op2 = " << operand2 << "  result = " << x << endl;		  break;		  		case 3 :		  result.d = x = operand1 * operand2;	// Multiply                  cout << "cmd = MUL " << "  op1 = " << operand1;                  cout << "  op2 = " << operand2 << "  result = " << x << endl;		  break;	      		default :		  cout <<  "\n fun: Undefined operation\n" << endl;		  break;		}	    }	}      }    }  // constructor  SC_CTOR(fun)    {      SC_THREAD(fun_thread)      sensitive << clk;    }};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -