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

📄 alu32.h

📁 该文件以systemc为核心建立了32位alu
💻 H
字号:
#include <systemc.h>
#include "74181.h"
#include "74182.h"

SC_MODULE(ALU32)
{
	sc_in<bool>		na[32], nb[32], s[4];
	sc_in<bool>		m, c_;

	sc_out<bool>	nf[32];
	sc_out<bool>	np_[2], ng_[2];
	sc_out<bool>	c31;

	sc_signal<bool>	tp[8], tg[8];
	sc_signal<bool>	tc[8];
	sc_signal<bool>	fc[8], fab[8];

	a74181 *x[8];
	a74182 *y[2];

	SC_CTOR(ALU32)
	{
		x[0] = new a74181("181_0");
		(*x[0])(na[0], na[1], na[2], na[3], nb[0], nb[1], nb[2], nb[3], s[0], s[1], s[2], s[3], m, c_,
			nf[0], nf[1], nf[2], nf[3], tp[0], tg[0], fc[0], fab[0]);

		x[1] = new a74181("181_1");
		(*x[1])(na[4], na[5], na[6], na[7], nb[4], nb[5], nb[6], nb[7], s[0], s[1], s[2], s[3], m, tc[1],
			nf[4], nf[5], nf[6], nf[7], tp[1], tg[1], fc[1], fab[1]);

		x[2] = new a74181("181_2");
		(*x[2])(na[8], na[9], na[10], na[11], nb[8], nb[9], nb[10], nb[11], s[0], s[1], s[2], s[3], m, tc[2],
			nf[8], nf[9], nf[10], nf[11], tp[2], tg[2], fc[2], fab[2]);

		x[3] = new a74181("181_3");
		(*x[3])(na[12], na[13], na[14], na[15], nb[12], nb[13], nb[14], nb[15], s[0], s[1], s[2], s[3], m, tc[3],
			nf[12], nf[13], nf[14], nf[15], tp[3], tg[3], tc[4], fab[3]);

		x[4] = new a74181("181_4");
		(*x[4])(na[16], na[17], na[18], na[19], nb[16], nb[17], nb[18], nb[19], s[0], s[1], s[2], s[3], m, tc[4],
			nf[16], nf[17], nf[18], nf[19], tp[4], tg[4], fc[4], fab[4]);

		x[5] = new a74181("181_5");
		(*x[5])(na[20], na[21], na[22], na[23], nb[20], nb[21], nb[22], nb[23], s[0], s[1], s[2], s[3], m, tc[5],
			nf[20], nf[21], nf[22], nf[23], tp[5], tg[5], fc[5], fab[5]);

		x[6] = new a74181("181_6");
		(*x[6])(na[24], na[25], na[26], na[27], nb[24], nb[25], nb[26], nb[27], s[0], s[1], s[2], s[3], m, tc[6],
			nf[24], nf[25], nf[26], nf[27], tp[6], tg[6], fc[6], fab[6]);

		x[7] = new a74181("181_7");
		(*x[7])(na[28], na[29], na[30], na[31], nb[28], nb[29], nb[30], nb[31], s[0], s[1], s[2], s[3], m, tc[7],
			nf[28], nf[29], nf[30], nf[31], tp[7], tg[7], c31, fab[7]);
			

		y[0] = new a74182("182_0");
		(*y[0])(tp[0], tp[1], tp[2], tp[3], tg[0], tg[1], tg[2], tg[3], c_, tc[1], tc[2], tc[3], np_[0], ng_[0]);

		y[1] = new a74182("182_1");
		(*y[1])(tp[4], tp[5], tp[6], tp[7], tg[4], tg[5], tg[6], tg[7], tc[4], tc[5], tc[6], tc[7], np_[1], ng_[1]);


		sensitive<<na[0]<<na[1]<<na[2]<<na[3]<<na[4]<<na[5]<<na[6]<<na[7]<<na[8]<<na[9]<<na[10]<<na[11]<<na[12]<<na[13]<<na[14]<<na[15]\
			<<na[16]<<na[17]<<na[18]<<na[19]<<na[20]<<na[21]<<na[22]<<na[23]<<na[24]<<na[25]<<na[26]<<na[27]<<na[28]<<na[29]<<na[30]<<na[31]\
			<<nb[0]<<nb[1]<<nb[2]<<nb[3]<<nb[4]<<nb[5]<<nb[6]<<nb[7]<<nb[8]<<nb[9]<<nb[10]<<nb[11]<<nb[12]<<nb[13]<<nb[14]<<nb[15]\
			<<nb[16]<<nb[17]<<nb[18]<<nb[19]<<nb[20]<<nb[21]<<nb[22]<<nb[23]<<nb[24]<<nb[25]<<nb[26]<<nb[27]<<nb[28]<<nb[29]<<nb[30]<<nb[31]\
			<<s[0]<<s[1]<<s[2]<<s[3]\
			<<m<<c_;
	}
};

⌨️ 快捷键说明

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