数电实验Verilog-取反加一

很久之前,数电实验课要求使用Verilog编程并在nexys4的板子上实现相应的功能。现在把实验课用过的代码放到上面。

用三种方法实现取反加一

取反加一十分简单,每一种方法基本上都是一两句话能完成

1.数据流建模

module qfjy(
    input [3:0]a,
    output [3:0]b
    );
	 assign b=~a+1;
endmodule

2.门级电路

module qfjy2(input [3:0]a,output [3:0]b);
		or(b[0],a[0]);
		xor(b[1],a[0],a[1]);
		wire c,d;
		or(c,a[0],a[1]);
		xor(b[2],a[2],c);
		or(d,c,a[2]);
		xor(b[3],a[3],d);
endmodule

门级电路的实现需要画真值表卡诺图再去找输入输出对应关系
真值表
3.行为级建模

module qfjy3(input [3:0]a,output reg [3:0]b);	
		always@(a) begin
		b<=~a+1;
		end 
endmodule

使用nexys4板子的led灯来显示其功能,并使用“落后的”ise进行编程
引脚约束(只能在ise上能这样用,vivado不是这样的格式)

# PlanAhead Generated physical constraints 

NET "a[0]" LOC = U9;

# PlanAhead Generated IO constraints 

NET "a[3]" IOSTANDARD = LVCMOS33;
NET "a[2]" IOSTANDARD = LVCMOS33;
NET "a[1]" IOSTANDARD = LVCMOS33;
NET "a[0]" IOSTANDARD = LVCMOS33;

# PlanAhead Generated physical constraints 

NET "a[0]" LOC = U9;
NET "a[1]" LOC = U8;
NET "a[2]" LOC = R7;
NET "a[3]" LOC = R6;
NET "b[0]" LOC = T8;
NET "b[1]" LOC = V9;
NET "b[2]" LOC = R8;
NET "b[3]" LOC = T6;


# PlanAhead Generated IO constraints 

NET "b[3]" IOSTANDARD = LVCMOS33;
NET "b[2]" IOSTANDARD = LVCMOS33;
NET "b[1]" IOSTANDARD = LVCMOS33;
NET "b[0]" IOSTANDARD = LVCMOS33;

以上就是Verilog取反加一的全部内容

在MATLAB中求解支点反力可以通过建立约束方程来实现。以一个简单的三维静力学问题为例,假设有一个平面上的物体被4个支点支撑,需要求解这些支点的反力。 首先,我们需要确定该物体受到的受力情况,并将受力图分解为各个方向的力。然后,我们可以根据物体处于平衡状态时各个力的合力为零的条件建立约束方程。 假设四个支点的反力分别为F1、F2、F3、F4,该物体受到的受力包括重力、外力以及支点反力。我们可以根据平衡条件得到以下三个方程: ∑Fy = F1y + F2y + F3y + F4y - mg = 0 ∑Fx = F1x + F2x + F3x + F4x = 0 ∑Mz = (r1 x F1)z + (r2 x F2)z + (r3 x F3)z + (r4 x F4)z = 0 其中,F1x、F1y等表示F1在x、y方向的分量,m表示物体的质量,g表示重力速度,r1、r2等表示从支点到力的作用点的位置矢量。 我们可以用MATLAB编写程序来求解这个方程组。首先定义变量和参数,然后设定约束方程: syms F1x F1y F2x F2y F3x F3y F4x F4y eq1 = F1y + F2y + F3y + F4y - m*g; eq2 = F1x + F2x + F3x + F4x; eq3 = cross(r1, [F1x,F1y,0]) + cross(r2, [F2x,F2y,0]) + cross(r3, [F3x,F3y,0]) + cross(r4, [F4x,F4y,0]); 然后,我们可以使用solve函数求解这个方程组,得到支点反力的解: sol = solve(eq1, eq2, eq3, F1x, F1y, F2x, F2y, F3x, F3y, F4x, F4y); 最后,我们可以通过访问sol结构体的字段来获取支点反力的值: F1x_value = sol.F1x F1y_value = sol.F1y ... 这样,我们就可以利用MATLAB求解给定力的支点反力。在实际应用中,可以通过修改约束方程和输入参数来处理更复杂的情况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值