Xilinx Spartan6-XC6SLX16-22FTG256 (2022.3.30)

注意事项:

1、{ ,}位拼接运算符(两个数之间中间用“,”隔开,也可以有多个“,”进行更多位 的拼接;

2、wire为输入型变量,reg为输出型变量  ,在实际工程中input 必须为wire型,输出可以为wire也可以为reg型 。但wire型输出不能出现在always中,只能配合assign使用,如半加器例子

一、LED灯

module led_test(key,led);
	input   wire[3:0]  key;            
	output  reg[3:0]  led;

always@(*)
	begin
		led=~key;
	end
endmodule

 ucf文件

NET led<0>                LOC = P4 | IOSTANDARD = "LVCMOS33";       ## LED1
NET led<1>                LOC = N5 | IOSTANDARD = "LVCMOS33";       ## LED2
NET led<2>                LOC = P5 | IOSTANDARD = "LVCMOS33";       ## LED3
NET led<3>                LOC = M6 | IOSTANDARD = "LVCMOS33";       ## LED4
NET key<0>                LOC = C3 | IOSTANDARD = "LVCMOS33";       ## KEY1
NET key<1>                LOC = D3 | IOSTANDARD = "LVCMOS33";       ## KEY2
NET key<2>                LOC = E4 | IOSTANDARD = "LVCMOS33";       ## KEY3
NET key<3>                LOC = E3 | IOSTANDARD = "LVCMOS33";       ## LED4

二、三八译码器

module led_test(
	input   wire  		key1, 
	input   wire  		key2,  
	input   wire  		key3, 
	input   wire  		key4,   	
	output  reg[3:0]  led
);
always@(*)
	case({key1,key2,key3,key4})
		4'b1111:led=4'b1000;
		4'b1101:led=4'b0100;
		4'b1011:led=4'b0010;
		4'b1110:led=4'b0001;
		default:led=4'b0000;
	endcase
endmodule

ucf文件

NET led<0>                LOC = P4 | IOSTANDARD = "LVCMOS33";       ## LED1
NET led<1>                LOC = N5 | IOSTANDARD = "LVCMOS33";       ## LED2
NET led<2>                LOC = P5 | IOSTANDARD = "LVCMOS33";       ## LED3
NET led<3>                LOC = M6 | IOSTANDARD = "LVCMOS33";       ## LED4
NET key1                  LOC = C3 | IOSTANDARD = "LVCMOS33";       ## KEY1
NET key2                  LOC = D3 | IOSTANDARD = "LVCMOS33";       ## KEY2
NET key3                  LOC = E4 | IOSTANDARD = "LVCMOS33";       ## KEY3
NET key4                  LOC = E3 | IOSTANDARD = "LVCMOS33";       ## LED4

三、半加器

 

module led_test(
    input   wire          key1, 
    input   wire          key2,  
    input   wire          key3, 
    input   wire          key4,       
    //output  wire[3:0]  led
    output  reg[3:0]  led
);
//assign led=key1+key2+key3+key4;

always@(*)
    begin
    led<=key1+key2+key3+key4;
    end

endmodule

ucf文件

NET led<0>              LOC = P4 | IOSTANDARD = "LVCMOS33";       ## LED1
NET led<1>              LOC = N5 | IOSTANDARD = "LVCMOS33";       ## LED2
NET led<2>              LOC = P5 | IOSTANDARD = "LVCMOS33";       ## LED3
NET led<3>              LOC = M6 | IOSTANDARD = "LVCMOS33";       ## LED4
NET key1                LOC = C3 | IOSTANDARD = "LVCMOS33";       ## KEY1
NET key2                LOC = D3 | IOSTANDARD = "LVCMOS33";       ## KEY2
NET key3                LOC = E4 | IOSTANDARD = "LVCMOS33";       ## KEY3
NET key4                LOC = E3 | IOSTANDARD = "LVCMOS33";       ## LED4

 

 

四、全加器

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jy_jiangyan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值