35选7示例

package java;
import java.util.Scanner;
public class Lottery {


public static void main(String[] args) {
// TODO Auto-generated method stub
Lottery.TicketCheck();
}
public static void TicketCheck() {


Scanner sc=new Scanner(System.in);
int[] a = new int[7];
int[] b = new int[7];
System.out.println("---------购买彩票---------");
//身份证验证
boolean flag=false;

System.out.println("身份证号:");
String identityCard = sc.nextLine();
String res_identityCard = "\\d{18}";
if (identityCard.matches(res_identityCard)) {
System.out.println("身份证格式正确");
flag=false;
}else {
System.out.println("身份证格式不正确");
flag=true;
}



   //输入购买号码
System.out.println("购买号码:(输入(1-35)的7个数字以逗号间隔)");
for (int i = 0; i < a.length; i++) {
a[i]=sc.nextInt();
}


int index_num=0;
System.out.println("---------彩票开奖---------");
System.out.print("[");
for (int j = 0; j <b.length ; j++) {
int num=(int) Math.round(Math.random()*35+1);
int i=0;
for (i = 0; i < index_num+1; i++) {
if (num==b[i]) {
break;
}
}
if (i==index_num+1) {
b[j]=num;
index_num++;
}


if (j<=b.length-2) {
System.out.print(b[j]+",");
}
if (j==b.length-1) {
System.out.print(b[j]+"]");
}
}



System.out.println();
System.out.println("---------兑奖信息---------");
int index=0;
for (int x = 0; x < a.length; x++) {
for (int y = 0; y < b.length; y++) {
if (a[x]==b[y]) {
index++;
break;
}
}
}
System.out.println("中奖数字个数:"+index);
int money=0;
switch (index) {
case 0:
money=0;
break;
case 1:
money=0;
break;
case 2:
money=0;
break;
case 3:
money=5;
break;
case 4:
money=100;
break;
case 5:
money=5000;
break;
case 6:
money=100000;
break;
case 7:
money=10000000;
break;


default:
break;
}
System.out.println("中奖金额:"+money);
}


}
### XC7A35T FPGA 模拟 USB 功能的配置与示例代码 #### 1. XC7A35T FPGA 简介 XC7A35T 是 Xilinx Artix-7 系列 FPGA 的一种型号,具有较低的功耗和丰富的逻辑资源。其 I/O BANK 设计灵活,能够支持多种电气标准[^2]。然而,FPGA 本身并不直接支持 USB 协议栈的硬件实现,因此需要通过外接 PHY 芯片或纯软件方式来模拟 USB 功能。 #### 2. FPGA 模拟 USB 功能的方式 在 FPGA 上实现 USB 功能通常有以下两种方法: - **使用外部 USB PHY 芯片**:通过 FPGA 控制外部 USB PHY 芯片完成 USB 数据传输。 - **纯 FPGA 实现**:通过 FPGA 的高速 I/O 引脚直接模拟 USB 信号波形。这种方式适用于低速 USB(USB 1.1)或自定义协议场景。 #### 3. 配置示例 以下是基于 XC7A35T FPGA 模拟 USB 功能的配置和示例代码: ##### 3.1 使用外部 USB PHY 芯片 如果择使用外部 USB PHY 芯片,则需要将 FPGA 的 GPIO 引脚与 PHY 芯片连接,并通过 SPI/I2C 接口对其进行初始化配置。以下是 Vivado 中的约束文件(XDC)示例: ```tcl # USB PHY 控制引脚约束 set_property PACKAGE_PIN Y14 [get_ports {usb_reset_n}] # USB PHY 复位引脚 set_property IOSTANDARD LVCMOS33 [get_ports {usb_reset_n}] set_property PACKAGE_PIN W14 [get_ports {spi_sclk}] # SPI 时钟 set_property IOSTANDARD LVCMOS33 [get_ports {spi_sclk}] set_property PACKAGE_PIN V14 [get_ports {spi_mosi}] # SPI MOSI set_property IOSTANDARD LVCMOS33 [get_ports {spi_mosi}] set_property PACKAGE_PIN U14 [get_ports {spi_miso}] # SPI MISO set_property IOSTANDARD LVCMOS33 [get_ports {spi_miso}] set_property PACKAGE_PIN T14 [get_ports {spi_cs_n}] # SPI 片 set_property IOSTANDARD LVCMOS33 [get_ports {spi_cs_n}] ``` ##### 3.2 纯 FPGA 实现 USB 功能 对于纯 FPGA 实现,可以使用 Verilog 或 VHDL 编写 USB 数据包生成器和解码器。以下是一个简单的 USB 低速设备数据发送模块的 Verilog 示例代码: ```verilog module usb_low_speed_sender ( input wire clk, // 系统时钟 input wire reset_n, // 复位信号,低电平有效 output reg usb_dplus, // USB D+ 信号 output reg usb_dminus // USB D- 信号 ); parameter IDLE = 2'b00; parameter SEND = 2'b01; reg [1:0] state; reg [7:0] data_reg; // 数据寄存器 reg [3:0] bit_count; // 位计数器 reg send_enable; // 发送使能 always @(posedge clk or negedge reset_n) begin if (!reset_n) begin state <= IDLE; usb_dplus <= 1'b0; usb_dminus <= 1'b0; bit_count <= 4'b0000; send_enable <= 1'b0; end else begin case (state) IDLE: begin if (send_enable) begin state <= SEND; usb_dplus <= data_reg[7]; usb_dminus <= ~data_reg[7]; bit_count <= 4'b0000; end end SEND: begin if (bit_count == 4'b1111) begin state <= IDLE; send_enable <= 1'b0; end else begin usb_dplus <= data_reg[bit_count]; usb_dminus <= ~data_reg[bit_count]; bit_count <= bit_count + 1'b1; end end endcase end end endmodule ``` #### 4. 注意事项 - 在实现 USB 功能时,必须确保 FPGA 的 I/O BANK 电压与 USB 信号电压匹配。例如,USB 低速信号通常为 3.3V,因此需将相关 BANK 的 VCCO 设置为 3.3V[^2]。 - 如果使用外部 PHY 芯片,请参考其数据手册进行正确的硬件连接和初始化配置。 - 对于高速 USB(USB 2.0 及以上),建议使用专用的硬核 IP(如 Xilinx 的 GTY/GTH 收发器),因为纯 FPGA 实现可能无法满足时序要求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值