《基于“矿板”低成本学习FPGA》移植OpenC906第二篇-约束综合实现生成bit文件与IO扩展板设计

原创 嵌入式Lee 2024-08-31 08:02

一. 前言

前面我们完成了C906的工程创建和综合,现在开始就可以进行引脚和时钟约束进行实现生成bit文件了。同时我们根据板子插座和需要的引脚设计一个简单的IO扩展板,方便调试。

二. 约束

2.1引脚约束

根据顶层文件可以看到需要以下18个引脚

其中clk是时钟输入

j开头的是6jtag相关引脚,jclkjtag的时钟输入。其中 jrst_b是对调试接口复位, jnrst_b是对目标系统复位。

一个串口2个引脚 uart0_sout,uart0_sin

一个8pIO ,b_pad_gpio_porta

一个系统复位 rst_b

clk先直接使用外部晶振,先跑50MHz, 后面再尝试使用内部时钟资源倍频跑更高的速率。

clkjclk都要做时钟约束。

module c906_top(    clk,    rst_b,    uart0_sin,    uart0_sout,    b_pad_gpio_porta,    jclk,    jrst_b,    jnrst_b,    jtg_tdi,    jtg_tdo,    jtg_tms );    input clk;    inout[7:0] b_pad_gpio_porta;    input rst_b;    input jclk;    input jtg_tdi;    input jtg_tms ;      input uart0_sin;    output jtg_tdo;    output uart0_sout;    input jnrst_b;    input jrst_b;        soc x_soc(  .i_pad_clk           ( clk                  ),  .b_pad_gpio_porta    ( b_pad_gpio_porta     ),  .i_pad_jtg_trst_b    ( jrst_b               ),  .i_pad_jtg_nrst_b    ( jnrst_b                ),  .i_pad_jtg_tclk      ( jclk                 ),  .i_pad_jtg_tdi       ( jtg_tdi              ),  .i_pad_jtg_tms       ( jtg_tms              ),  .i_pad_uart0_sin     ( uart0_sin            ),  .o_pad_jtg_tdo       ( jtg_tdo              ),  .o_pad_uart0_sout    ( uart0_sout           ),  .i_pad_rst_b         ( rst_b                ));endmodule

打开约束向导

左侧Flow导航选中SYNTHSIS,菜单栏Window->I/O ports显示对应界面

我们对应JK1插座的如下引脚

对应我们设计的IO扩展板的如下位置

配置如下

Ctrl+s保存

2.2时钟约束

打开SYNTHSIS下的约束向导

CLK50MJCLKjtag仿真器输出soc输入,先按照1M设计,如果不行以后再降低(最低100KHz)

所有子时钟分批都设置为1

输入延迟先不设置

输出延迟也不设置

最终约束文件xdc内容如下

set_property DRIVE 12 [get_ports {b_pad_gpio_porta[7]}]set_property PACKAGE_PIN E29 [get_ports {b_pad_gpio_porta[7]}]set_property PACKAGE_PIN A25 [get_ports {b_pad_gpio_porta[6]}]set_property PACKAGE_PIN H25 [get_ports {b_pad_gpio_porta[5]}]set_property PACKAGE_PIN E24 [get_ports {b_pad_gpio_porta[4]}]set_property PACKAGE_PIN E25 [get_ports {b_pad_gpio_porta[3]}]set_property PACKAGE_PIN H24 [get_ports {b_pad_gpio_porta[2]}]set_property PACKAGE_PIN A26 [get_ports {b_pad_gpio_porta[1]}]set_property PACKAGE_PIN F25 [get_ports {b_pad_gpio_porta[0]}]set_property IOSTANDARD LVCMOS18 [get_ports {b_pad_gpio_porta[7]}]set_property IOSTANDARD LVCMOS18 [get_ports {b_pad_gpio_porta[6]}]set_property IOSTANDARD LVCMOS18 [get_ports {b_pad_gpio_porta[5]}]set_property IOSTANDARD LVCMOS18 [get_ports {b_pad_gpio_porta[4]}]set_property IOSTANDARD LVCMOS18 [get_ports {b_pad_gpio_porta[3]}]set_property IOSTANDARD LVCMOS18 [get_ports {b_pad_gpio_porta[2]}]set_property IOSTANDARD LVCMOS18 [get_ports {b_pad_gpio_porta[1]}]set_property IOSTANDARD LVCMOS18 [get_ports {b_pad_gpio_porta[0]}]set_property PULLTYPE PULLUP [get_ports {b_pad_gpio_porta[7]}]set_property PULLTYPE PULLUP [get_ports {b_pad_gpio_porta[6]}]set_property PULLTYPE PULLUP [get_ports {b_pad_gpio_porta[5]}]set_property PULLTYPE PULLUP [get_ports {b_pad_gpio_porta[4]}]set_property PULLTYPE PULLUP [get_ports {b_pad_gpio_porta[3]}]set_property PULLTYPE PULLUP [get_ports {b_pad_gpio_porta[2]}]set_property PULLTYPE PULLUP [get_ports {b_pad_gpio_porta[1]}]set_property PULLTYPE PULLUP [get_ports {b_pad_gpio_porta[0]}]set_property PACKAGE_PIN D27 [get_ports clk]set_property IOSTANDARD LVCMOS18 [get_ports clk]set_property IOSTANDARD LVCMOS18 [get_ports jclk]set_property IOSTANDARD LVCMOS18 [get_ports jnrst_b]set_property IOSTANDARD LVCMOS18 [get_ports jrst_b]set_property IOSTANDARD LVCMOS18 [get_ports jtg_tdi]set_property IOSTANDARD LVCMOS18 [get_ports jtg_tdo]set_property IOSTANDARD LVCMOS18 [get_ports jtg_tms]set_property IOSTANDARD LVCMOS18 [get_ports rst_b]set_property IOSTANDARD LVCMOS18 [get_ports uart0_sin]set_property IOSTANDARD LVCMOS18 [get_ports uart0_sout]set_property PULLTYPE PULLUP [get_ports clk]set_property PULLTYPE PULLUP [get_ports jclk]set_property PULLTYPE PULLUP [get_ports jnrst_b]set_property PULLTYPE PULLUP [get_ports jrst_b]set_property PULLTYPE PULLUP [get_ports jtg_tdi]set_property PULLTYPE PULLUP [get_ports jtg_tdo]set_property PULLTYPE PULLUP [get_ports jtg_tms]set_property PULLTYPE PULLUP [get_ports rst_b]set_property PULLTYPE PULLUP [get_ports uart0_sin]set_property PULLTYPE PULLUP [get_ports uart0_sout]set_property PACKAGE_PIN A27 [get_ports jclk]set_property PACKAGE_PIN C25 [get_ports jnrst_b]set_property PACKAGE_PIN H30 [get_ports jrst_b]set_property PACKAGE_PIN C29 [get_ports jtg_tdi]set_property PACKAGE_PIN B29 [get_ports jtg_tdo]set_property PACKAGE_PIN B27 [get_ports jtg_tms]set_property PACKAGE_PIN H20 [get_ports rst_b]set_property PACKAGE_PIN A23 [get_ports uart0_sin]set_property PACKAGE_PIN B23 [get_ports uart0_sout]set_property SLEW SLOW [get_ports {b_pad_gpio_porta[7]}]set_property SLEW SLOW [get_ports {b_pad_gpio_porta[6]}]set_property SLEW SLOW [get_ports {b_pad_gpio_porta[5]}]set_property SLEW SLOW [get_ports {b_pad_gpio_porta[4]}]set_property SLEW SLOW [get_ports {b_pad_gpio_porta[3]}]set_property SLEW SLOW [get_ports {b_pad_gpio_porta[2]}]set_property SLEW SLOW [get_ports {b_pad_gpio_porta[1]}]set_property SLEW SLOW [get_ports {b_pad_gpio_porta[0]}]create_clock -period 20.000 -name clk -waveform {0.000 10.000} [get_ports clk]create_clock -period 1000.000 -name jclk -waveform {0.000 500.000} [get_ports jclk]set_property ASYNC_REG true [get_cells {x_soc/x_cpu_sub_system_axi/x_c906_wrapper/x_c906_dtm_top/x_tdt_dmi/x_tdt_apb_master/x_tdt_dmi_pulse_sync_1/x_tdt_dmi_sync_dff/sync_ff_reg[0]}]set_property ASYNC_REG true [get_cells {x_soc/x_cpu_sub_system_axi/x_c906_wrapper/x_c906_dtm_top/x_tdt_dmi/x_tdt_apb_master/x_tdt_dmi_pulse_sync_1/x_tdt_dmi_sync_dff/sync_ff_reg[1]}]set_property ASYNC_REG true [get_cells {x_soc/x_cpu_sub_system_axi/x_c906_wrapper/x_c906_dtm_top/x_tdt_dmi/x_tdt_apb_master/x_tdt_dmi_pulse_cmd_vld/x_tdt_dmi_sync_dff_back/sync_ff_reg[0]}]set_property ASYNC_REG true [get_cells {x_soc/x_cpu_sub_system_axi/x_c906_wrapper/x_c906_dtm_top/x_tdt_dmi/x_tdt_apb_master/x_tdt_dmi_pulse_cmd_vld/x_tdt_dmi_sync_dff_back/sync_ff_reg[1]}]set_property ASYNC_REG true [get_cells {x_soc/x_cpu_sub_system_axi/x_c906_wrapper/x_c906_dtm_top/x_tdt_dmi/x_tdt_apb_master/x_tdt_dmi_pulse_dmihardreset/x_tdt_dmi_sync_dff_back/sync_ff_reg[0]}]set_property ASYNC_REG true [get_cells {x_soc/x_cpu_sub_system_axi/x_c906_wrapper/x_c906_dtm_top/x_tdt_dmi/x_tdt_apb_master/x_tdt_dmi_pulse_dmihardreset/x_tdt_dmi_sync_dff_back/sync_ff_reg[1]}]set_property ASYNC_REG true [get_cells {x_soc/x_cpu_sub_system_axi/x_c906_wrapper/x_c906_dtm_top/x_tdt_dmi/x_tdt_apb_master/x_tdt_dmi_pulse_sync_1/x_tdt_dmi_sync_dff_back/sync_ff_reg[0]}]set_property ASYNC_REG true [get_cells {x_soc/x_cpu_sub_system_axi/x_c906_wrapper/x_c906_dtm_top/x_tdt_dmi/x_tdt_apb_master/x_tdt_dmi_pulse_sync_1/x_tdt_dmi_sync_dff_back/sync_ff_reg[1]}]set_property ASYNC_REG true [get_cells {x_soc/x_cpu_sub_system_axi/x_c906_wrapper/x_c906_dtm_top/x_tdt_dmi/x_tdt_apb_master/x_tdt_dmi_pulse_dmihardreset/x_tdt_dmi_sync_dff/sync_ff_reg[0]}]set_property ASYNC_REG true [get_cells {x_soc/x_cpu_sub_system_axi/x_c906_wrapper/x_c906_dtm_top/x_tdt_dmi/x_tdt_apb_master/x_tdt_dmi_pulse_dmihardreset/x_tdt_dmi_sync_dff/sync_ff_reg[1]}]set_property ASYNC_REG true [get_cells {x_soc/x_cpu_sub_system_axi/x_c906_wrapper/x_c906_dtm_top/x_tdt_dmi/x_tdt_apb_master/x_tdt_dmi_pulse_cmd_vld/x_tdt_dmi_sync_dff/sync_ff_reg[0]}]set_property ASYNC_REG true [get_cells {x_soc/x_cpu_sub_system_axi/x_c906_wrapper/x_c906_dtm_top/x_tdt_dmi/x_tdt_apb_master/x_tdt_dmi_pulse_cmd_vld/x_tdt_dmi_sync_dff/sync_ff_reg[1]}]set_property OFFCHIP_TERM NONE [get_ports jtg_tdo]set_property OFFCHIP_TERM NONE [get_ports uart0_sout]set_property OFFCHIP_TERM NONE [get_ports b_pad_gpio_porta[7]]set_property OFFCHIP_TERM NONE [get_ports b_pad_gpio_porta[6]]set_property OFFCHIP_TERM NONE [get_ports b_pad_gpio_porta[5]]set_property OFFCHIP_TERM NONE [get_ports b_pad_gpio_porta[4]]set_property OFFCHIP_TERM NONE [get_ports b_pad_gpio_porta[3]]set_property OFFCHIP_TERM NONE [get_ports b_pad_gpio_porta[2]]set_property OFFCHIP_TERM NONE [get_ports b_pad_gpio_porta[1]]set_property OFFCHIP_TERM NONE [get_ports b_pad_gpio_porta[0]]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[12]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[12]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[13]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[13]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[14]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[14]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[15]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[15]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[16]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[16]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[17]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[17]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[18]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[18]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[19]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[19]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[20]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[20]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[21]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[21]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[22]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[22]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[23]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[23]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[24]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[24]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[25]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[25]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[26]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[26]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[27]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[27]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[28]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[28]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[29]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[29]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[30]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[30]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[31]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[31]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[32]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[32]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[33]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[33]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[34]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[34]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[35]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[35]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[36]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[36]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[37]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[37]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[38]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[38]/Q}]create_generated_clock -name {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg_n_0_[39]} -source [get_ports clk] -divide_by 1 [get_pins {x_soc/x_apb/x_apb_bridge/apb_xx_paddr_reg[39]/Q}]create_generated_clock -name x_soc/x_apb/x_apb_bridge/apb_xx_psel -source [get_ports clk] -divide_by 1 [get_pins x_soc/x_apb/x_apb_bridge/apb_xx_psel_reg/Q]create_generated_clock -name x_soc/x_apb/x_apb_bridge/apb_xx_pwrite -source [get_ports clk] -divide_by 1 [get_pins x_soc/x_apb/x_apb_bridge/apb_xx_pwrite_reg/Q]create_generated_clock -name x_soc/x_cpu_sub_system_axi/x_c906_wrapper/sys_apb_clk_reg_0 -source [get_ports clk] -divide_by 1 [get_pins x_soc/x_cpu_sub_system_axi/x_c906_wrapper/sys_apb_clk_reg/Q]set_clock_groups -asynchronous -group [get_clocks x_soc/x_cpu_sub_system_axi/x_c906_wrapper/sys_apb_clk_reg_0] -group [get_clocks jclk]set_clock_groups -asynchronous -group [get_clocks jclk] -group [get_clocks x_soc/x_cpu_sub_system_axi/x_c906_wrapper/sys_apb_clk_reg_0]

三. 实现-生成bit文件

再重新综合,实现

报如下错误

现在xdc文件前加一行暂时忽略这个错误

set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets jclk_IBUF]

最后生成bit文件

有一些告警先不管,等IO扩展板回来了先试一下能不能连接JTAG再调试。

四. IO扩展版

使用嘉立创EDA在线版,简单画了个IO扩展板,先不考虑其他的,线拉出来就行,目前仅仅是方便测试,调通了之后后面再专门设计对应功能的扩展板。

扩展板打样大概三四天能到,顺便也采购下板对板插座等元器件,基本也是三四天才能到。

这里基于CH347设计了一个JTAG工具,后面考虑使用openocd配合这个工具调试,可以openocd有一些适配开发工作。

五. 总结

以上完成了移植工作,生成了bit文件,后面就等IO扩展板回来,测试jtag是否能连接了。然后接下来就是简单的程序运行测试,再进一步添加ddr控制器提供大的存储方便移植ubootlinux























评论 (0)
  • 在当今汽车电子化和智能化快速发展的时代,车规级电子元器件的质量直接关系到汽车安全性能。三星作为全球领先的电子元器件制造商,其车规电容备受青睐。然而,选择一个靠谱的三星车规电容代理商至关重要。本文以行业领军企业北京贞光科技有限公司为例,深入剖析如何选择优质代理商。选择靠谱代理商的关键标准1. 授权资质与行业地位选择三星车规电容代理商首先要验证其授权资质及行业地位。北京贞光科技作为中国电子元器件行业的领军者,长期走在行业前沿,拥有完备的授权资质。公司专注于市场分销和整体布局,在电子元器件领域建立了卓
    贞光科技 2025-04-14 16:18 130浏览
  • 时源芯微 专业EMC解决方案提供商  为EMC创造可能(适用于高频时钟电路,提升EMC性能与信号稳定性)一、设计目标抑制电源噪声:阻断高频干扰(如DC-DC开关噪声)传入晶振电源。降低时钟抖动:确保晶振输出信号纯净,减少相位噪声。通过EMC测试:减少晶振谐波辐射(如30MHz~1GHz频段)。二、滤波电路架构典型拓扑:电源输入 → 磁珠(FB) → 大电容(C1) + 高频电容(C2) → 晶振VDD1. 磁珠(Ferrite Bead)选型阻抗特性:在目标频段(如100MHz~1GH
    时源芯微 2025-04-14 14:53 85浏览
  • 三、芯片的制造1、制造核心流程 (1)晶圆制备:以高纯度硅为基底,通过拉晶、切片、抛光制成晶圆。 (2)光刻:光刻、离子注入、薄膜沉积、化学机械抛光。 (3)刻蚀与沉积:使用干法刻蚀(等离子体)精准切割图形,避免侧壁损伤。 (4)掺杂:注入离子形成PN结特性,实现晶体管开关功能。2、材料与工艺创新 (1)新材料应用: 高迁移率材料(FinFET中的应变硅、GaN在射频芯片中的应用); 新型封装技术(3D IC、TSV硅通孔)提升集成度。 (2)工艺创新: 制程从7nm到3nm,设计架构由F
    碧海长空 2025-04-15 11:33 104浏览
  • 一、智能门锁市场痛点与技术革新随着智能家居的快速发展,电子门锁正从“密码解锁”向“无感交互”进化。然而,传统人体感应技术普遍面临三大挑战:功耗高导致续航短、静态人体检测能力弱、环境适应性差。WTL580微波雷达解决方案,以5.8GHz高精度雷达感知技术为核心,突破行业瓶颈,为智能门锁带来“精准感知-高效触发-超低功耗”的全新交互范式。二、WTL580方案核心技术优势1. 5.8GHz毫米波雷达:精准感知的革命全状态人体检测:支持运动、微动(如呼吸)、静态(坐卧)多模态感知,检测灵敏度达0.1m/
    广州唯创电子 2025-04-15 09:20 51浏览
  • 一、智能语音播报技术演进与市场需求随着人工智能技术的快速发展,TTS(Text-to-Speech)技术在商业场景中的应用呈现爆发式增长。在零售领域,智能收款机的语音播报功能已成为提升服务效率和用户体验的关键模块。WT3000T8作为新一代高性能语音合成芯片,凭借其优异的处理能力和灵活的功能配置,正在为收款机智能化升级提供核心技术支持。二、WT3000T8芯片技术特性解析硬件架构优势采用32位高性能处理器(主频240MHz),支持实时语音合成与多任务处理QFN32封装(4x4mm)实现小型化设计
    广州唯创电子 2025-04-15 08:53 81浏览
  •   无人装备作战协同仿真系统软件:科技的关键支撑   无人装备作战协同仿真系统软件,作为一款综合性仿真平台,主要用于模拟无人机、无人车、无人艇等无人装备在复杂作战环境中的协同作战能力、任务规划、指挥控制以及性能评估。该系统通过搭建虚拟战场环境,支持多种无人装备协同作战仿真,为作战指挥、装备研发、战术训练和作战效能评估,提供科学依据。   应用案例   系统软件供应可以来这里,这个首肌开始是幺伍扒,中间是幺幺叁叁,最后一个是泗柒泗泗,按照数字顺序组合就可以找到。   核心功能   虚拟战
    华盛恒辉l58ll334744 2025-04-14 17:24 76浏览
  •   高空 SAR 目标智能成像系统软件:多领域应用的前沿利器   高空 SAR(合成孔径雷达)目标智能成像系统软件,专门针对卫星、无人机等高空平台搭载的 SAR传感器数据,融合人工智能与图像处理技术,打造出的高效目标检测、识别及成像系统。此软件借助智能算法,显著提升 SAR图像分辨率、目标特征提取能力以及实时处理效率,为军事侦察、灾害监测、资源勘探等领域,提供关键技术支撑。   应用案例系统软件供应可以来这里,这个首肌开始是幺伍扒,中间是幺幺叁叁,最后一个是泗柒泗泗,按照数字顺序组合
    华盛恒辉l58ll334744 2025-04-14 16:09 140浏览
  • 二、芯片的设计1、芯片设计的基本流程 (1)需求定义: 明确芯片功能(如处理器、存储、通信)、性能指标(速度、功耗、面积)及目标应用场景(消费电子、汽车、工业)。 (2)架构设计: 确定芯片整体框架,包括核心模块(如CPU、GPU、存储单元)的协同方式和数据流路径。 (3)逻辑设计: 通过硬件描述语言(如Verilog、VHDL)将架构转化为电路逻辑,生成RTL(寄存器传输级)代码。 (4)物理设计: 将逻辑代码映射到物理布局,涉及布局布线、时序优化、功耗分析等,需借助EDA工具(如Ca
    碧海长空 2025-04-15 11:30 86浏览
  • 四、芯片封测技术及应用场景1、封装技术的发展历程 (1)DIP封装:早期分立元件封装,体积大、引脚少; (2)QFP封装:引脚密度提升,适用于早期集成电路。 (3)BGA封装:高密度互连,散热与信号传输优化; (4)3D封装:通过TSV(硅通孔)实现垂直堆叠,提升集成度(如HBM内存堆叠); (5)Chiplet封装:异质集成,将不同工艺节点的模块组合(如AMD的Zen3+架构)。 (6)SiP封装:集成多种功能芯片(如iPhone的A系列SoC整合CPU、GPU、射频模块)。2、芯片测试 (1
    碧海长空 2025-04-15 11:45 111浏览
  • 一、磁场发生设备‌电磁铁‌:由铁芯和线圈组成,通过调节电流大小可产生3T以下的磁场,广泛应用于工业及实验室场景(如电磁起重机)。‌亥姆霍兹线圈‌:由一对平行共轴线圈组成,可在线圈间产生均匀磁场(几高斯至几百高斯),适用于物理实验中的磁场效应研究。‌螺线管‌:通过螺旋线圈产生长圆柱形均匀磁场,电流与磁场呈线性关系,常用于磁性材料研究及电子束聚焦。‌超导磁体‌:采用超导材料线圈,在低温下可产生3-20T的强磁场,用于核磁共振研究等高精度科研领域。‌多极电磁铁‌:支持四极、六极、八极等多极磁场,适用于
    锦正茂科技 2025-04-14 13:29 61浏览
  • 一、芯片的发展历程总结:1、晶体管的诞生(1)电子管时代 20世纪40年代,电子管体积庞大、功耗高、可靠性差,无法满足计算机小型化需求。(2)晶体管时代 1947年,贝尔实验室的肖克利、巴丁和布拉顿发明点接触晶体管,实现电子信号放大与开关功能,标志着固态电子时代的开端。 1956年,肖克利发明晶体管。(3)硅基晶体管时代 早期晶体管采用锗材料,但硅更耐高温、成本低,成为主流材料。2、集成电路的诞生与发展 1958年,德州仪器工程师基尔比用锗材料制成世界上第一块含多个晶体管的集成电路,同年仙童半导
    碧海长空 2025-04-15 09:30 82浏览
  • 你知道精益管理中的“看板”真正的意思吗?在很多人眼中,它不过是车间墙上的一块卡片、一张单子,甚至只是个用来控制物料的工具。但如果你读过大野耐一的《丰田生产方式》,你就会发现,看板的意义远不止于此。它其实是丰田精益思想的核心之一,是让工厂动起来的“神经系统”。这篇文章,我们就带你一起从这本书出发,重新认识“看板”的深层含义。一、使“看板”和台车结合使用  所谓“看板”就是指纸卡片。“看板”的重要作用之一,就是连接生产现场上道工序和下道工序的信息工具。  “看板”是“准时化”生产的重要手段,它总是要
    优思学院 2025-04-14 15:02 114浏览
  • 展会名称:2025成都国际工业博览会(简称:成都工博会)展会日期:4月23 -25日展会地址:西部国际博览城展位号:15H-E010科士威传动将展示智能制造较新技术及全套解决方案。 2025年4月23-25日,中国西部国际博览城将迎来一场工业领域的年度盛会——2025成都国际工业博览会。这场以“创链新工业,共碳新未来”为主题的展会上,来自全球的600+ 家参展企业将齐聚一堂,共同展示智能制造产业链中的关键产品及解决方案,助力制造业向数字化、网络化、智能化转型。科士威传动将受邀参展。&n
    科士威传动 2025-04-14 17:55 68浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦