diff --git a/.gitignore b/.gitignore index 96b174d..ade9268 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,5 @@ __pycache__/ venv/ .idea/ +old/ + diff --git a/README.assets/1.jpg b/README.assets/1.jpg deleted file mode 100644 index 1ff4fa1..0000000 Binary files a/README.assets/1.jpg and /dev/null differ diff --git a/README.md b/README.md index 3b49bcc..c92559b 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,10 @@ # 下位机 -下位机按上位机指令根据传送带脉冲等触发相机,完成刨花板的缺陷分选任务。本次下位机不连接阀板,是由PLC翻板机的机械装置作为执行器,对木板进行分选。采用的硬件是[Microphase](https://www.microphase.cn/)的XME0724CB ZYNQ开发板,具体核心板型号为XME0724-10,到手后记得把各排插针焊一下,如左图: +下位机按上位机指令根据传送带脉冲等触发相机,完成刨花板的缺陷分选任务。本次下位机不连接阀板,是由PLC翻板机的机械装置作为执行器,对木板进行分选。采用的硬件是[Alinx](https://www.alinx.com/)的AC7Z100C ZYNQ开发板。 -![1](README.assets/1.jpg) +本IO扩展版提供了 -为了供电稳定,采用叠板给底板5V供电,由底板输出3.3V供回给叠板,叠板就是IO扩展板,将IO扩展板插在底板排针上,叠起来,因此称为叠板,如上图中和上图右。 - -IO扩展版提供了 - -- 1个12V电源输入 -- 4个相机触发,本次项目为2个相机触发,其余冗余 -- 1个ZYNQ散热风扇接口 -- 6个编码器或IO输入,本次项目为1个编码器输入、1个物体传感器输入,其余冗余 -- 8个阀板接口,本次项目没有用到 +- xxxxxx 接线时,12V电源连接到IO扩展板的电源接口,相机线应连接相机触发接口`TRIG1`、`TRIG2`和对应的`GND`接口,编码器线应连接在编码器输入接口`E1`和对应的`GND`接口,物体传感器应连接输入接口`E3`和对应的`GND`接口。注意底板不连接任何外部电源。 @@ -43,7 +35,7 @@ IO扩展版提供了 - pl_platform为PL端硬件设计 - xme0724ioextend为IO叠板的原理图和PCB -- source为XME0724板子上运行的源程序和模拟上位机程序 +- source为AC7Z100C板子上运行的源程序和模拟上位机程序 - liunx_app为Linux上运行的应用程序,即业务逻辑 - linux_driver为Linux上的驱动,用于控制自定义的PL端硬件,其中drv_test结尾的目录为相应驱动模块的测试应用程序 @@ -76,4 +68,4 @@ b分支编号-d文档版本-hPCB设计版本-lFPGA设计版本-p协议版本-s ## 作者 -作者觉得还是不说明是谁比较好,免得毕业后有提着示波器的师弟师妹来问问题 \ No newline at end of file +作者徐耀,不管有没有毕业,7x24欢迎提着示波器的师弟师妹来问问题 \ No newline at end of file diff --git a/doc/develop_and_deploy.md b/doc/develop_and_deploy.md deleted file mode 100644 index ae3ae9b..0000000 --- a/doc/develop_and_deploy.md +++ /dev/null @@ -1,365 +0,0 @@ -# 开发和部署 - -## 开发 - -本次开发基于zynq `xc7z010-1clg400`芯片,因此FPGA设计软件为Vitis中包含的[Vivado 2022.1](https://china.xilinx.com/support/download/index.html/content/xilinx/zh/downloadNav/vitis.html),Linux编译工具为[petalinux 2022.2](https://china.xilinx.com/support/download/index.html/content/xilinx/zh/downloadNav/embedded-design-tools.html),Linux应用程序编译工具为linaro的[arm-linux-gnueabihf-gcc 12.2.1](https://snapshots.linaro.org/gnu-toolchain/12.2-2023.04-1/)。 - -### 生成硬件描述文件 - -1. 下载[hardware/pl_platform](../hardware/pl_platform)文件夹到家目录,这里假设用户为miaow
在vivado 2022.1中执行tcl脚本,复原工程 - ```tcl - source /home/miaow/pl_platform/lower_machine.tcl - ``` - -2. 重新生成`block design`的`output products` - -3. 生成`bitstream`后创建硬件描述文件,命令为 - ```tcl - # 下面命令中32为计算机逻辑内核数,按实际设定 - launch_runs impl_1 -to_step write_bitstream -jobs 32 - - # 生成硬件描述文件 - write_hw_platform -fixed -include_bit -force -file /home/miaow/zynq/vivado_git/lower_machine/system_wrapper.xsa - ``` - 硬件描述文件为`system_wrapper.xsa` - -### 创建PETALINUX工程 - -1. 创建名为`ps-linux`的工程 - - ```shell - $ cd ~ - $ petalinux-create -t project --template zynq -n ps-linux - ``` - -2. 上传release中的硬件描述文件`system_wrapper.xsa`到`ps-linux`目录中并config - - ```shell - system_wrapper.xsa上传到~/ps-linux - $ petalinux-config --get-hw-description system_wrapper.xsa - ``` - - 在`petalinux-config`时候,按下面提示配置 - - ```shell - # Subsystem AUTO Hardware Settings - # ├─Serial Settings - # | ├─FSBL Serial stdin/stdout (设为ps7_uart_0) - # | ├─DTG Serial stdin/stdout (设为ps7_uart_0) - # | └─System stdin/stdout baudrate for ps7_uart_0 (设为115200) - # ├─Ethernet Settings - # | ├─Randomise MAC address (不选) - # | ├─Primary Ethernet (设为ps7_ethernet_0) - # | ├─Obtain IP address automatically (不选) - # | ├─Static IP address (设为192.168.10.10) - # | ├─Static IP netmask (设为255.255.255.0) - # | └─Static IP gateway (设为192.168.10.1) - # ├─Flash Settings - # | └─Primary Flash (设为ps7_qspi_0) - # ├─Flash Settings - # | └─Primary Flash (设为ps7_qspi_0) - # ├─SD/SDIO Settings - # | └─Primary SD/SDIO (设为ps7_sd_0) - # Image Packaging Configuration - # └─Image Packaging Configuration - # ├─Root filesystem type (设为EXT4 (SD/eMMC/SATA/USB)) - # ├─name for bootable kernel image (设为image.ub) - # ├─Root filesystem formats (设为tar.gz) - # └─Copy final images to tftpboot (不选) - ``` - -4. 创建一个模块 - - ```shell - $ petalinux-create -t modules --name encoder --enable - ``` - -1. 上传驱动代码[source/linux_driver/encoder.c](../source/linux_driver/encoder.c)到下面的目录中 - - ```shell - ~/ps-linux/project-spec/meta-user/recipes-modules/encoder/files - ``` - -1. 修改设备树,需要修改的文件为`project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi`,先删除该文件,然后上传新的自定义设备树文件[source/petalinux_devicetree/system-user.dtsi](../source/petalinux_devicetree/system-user.dtsi) - - ```shell - $ cd ~/ps-linux/project-spec/meta-user/recipes-bsp/device-tree/files - $ rm system-user.dtsi - 上传source/petalinux_devicetree/system-user.dtsi - ``` - -2. 配置`kernel`,使用命令`petalinux-config -c kernel`,按下面提示或[source/petalinux_config/kernel.cfg](../source/petalinux_config/kernel.cfg)配置 - - ```shell - # File systems - # ├─FUSE (Filesystem in Userspace) support (勾选为星号) - # └─DOS/FAT/EXFAT/NT Filesystems - # ├─Enable FAT UTF-8 option by default (勾选为星号) - # ├─exFAT filesystem support (勾选为星号) - # ├─NTFS file system support (勾选为星号) - # └─NTFS write support (勾选为星号) - # Device Drivers - # └─USB support - # └─OTG support (勾选为星号) - ``` - -3. 配置`rootfs`,使用命令`petalinux-config -c rootfs`,按下面提示或[source/petalinux_config/rootfs_config](../source/petalinux_config/rootfs_config)配置 - - ```shell - # Filesystem Packages - # ├─base - # | ├─shell - # | | └─bash - # | | └─bash (勾选为星号) - # | ├─tar - # | | └─tar (勾选为星号) - # | ├─util-linux - # | | ├─util-linux-blkid (勾选为星号) - # | | ├─util-linux-lscpu (勾选为星号) - # | | ├─util-linux-umount (勾选为星号) - # | | └─util-linux-mount (勾选为星号) - # | └─xz - # | ├─xz (勾选为星号) - # | └─liblzma (勾选为星号) - # ├─console - # | ├─network - # | | ├─curl - # | | | ├─curl (勾选为星号) - # | | | └─libcurl (勾选为星号) - # | | ├─dropbear - # | | | └─dropbear (不选) - # | | ├─ethtool - # | | | └─ethtool (勾选为星号) - # | | ├─lrzsz - # | | | └─lrzsz (勾选为星号) - # | | ├─minicom - # | | | └─minicom (勾选为星号) - # | | ├─openssh - # | | | ├─openssh (勾选为星号) - # | | | ├─openssh-misc (勾选为星号) - # | | | ├─openssh-sshd (勾选为星号) - # | | | ├─openssh-keygen (勾选为星号) - # | | | ├─openssh-ssh (勾选为星号) - # | | | ├─openssh-sftp (勾选为星号) - # | | | ├─openssh-sftp-server (勾选为星号) - # | | | └─openssh-scp (勾选为星号) - # | | └─wget - # | | └─wget (勾选为星号) - # | ├─utils - # | | ├─bash-completion - # | | | ├─bash-completion (勾选为星号) - # | | | └─bash-completion-extra (勾选为星号) - # | ├─bzip2 - # | | ├─bzip2 (勾选为星号) - # | | └─libbz2 (勾选为星号) - # | ├─file - # | | └─file (勾选为星号) - # | ├─findutils - # | | └─findutils (勾选为星号) - # | ├─gawk - # | | └─gawk (勾选为星号) - # | ├─grep - # | | └─grep (勾选为星号) - # | ├─gzip - # | | └─gzip (勾选为星号) - # | ├─less - # | | └─less (勾选为星号) - # | ├─man - # | | └─man (勾选为星号) - # | ├─man-pages - # | | └─man-pages (勾选为星号) - # | ├─screen - # | | └─screen (勾选为星号) - # | ├─sed - # | | └─sed (勾选为星号) - # | ├─unzip - # | | └─unzip (勾选为星号) - # | ├─vim - # | | ├─vim (勾选为星号) - # | | ├─vim-syntax (勾选为星号) - # | | └─vim-common (勾选为星号) - # | └─zip - # | └─zip (勾选为星号) - # ├─devel - # | └─lsof - # | └─lsof (勾选为星号) - # ├─libs - # | ├─ncurses - # | | ├─ncurses (勾选为星号) - # | | ├─ncurses-terminfo-base (勾选为星号) - # | | ├─ncurses-tools (勾选为星号) - # | | └─ncurses-terminfo (勾选为星号) - # | └─which - # | └─which (勾选为星号) - # ├─misc - # | ├─perf - # | | └─perf (勾选为星号) - # | └─packagegroup-core-ssh-dropbear - # | └─packagegroup-core-ssh-dropbear (不选) - # Image Features - # ├─imagefeature-ssh-server-dropbear (不选) - # ├─imagefeature-ssh-server-openssh (勾选为星号) - # ├─imagefeature-hwcodecs (勾选为星号) - # ├─imagefeature-package-management (勾选为星号) - # modules - # ├─encoder (不选) - # PetaLinux RootFS Settings - # ├─ADD_EXTRA_USERS (root:3703;petalinux:3703;) - # ├─ADD_USERS_TO_GROUPS (petalinux:audio,video;) - # └─ADD_USERS_TO_SUDOERS (petalinux) - ``` - -8. 替换`~/ps-linux/project-spec/meta-user/recipes-bsp/u-boot/files/platform-top.h`为[platform-top.h](../source/petalinux_config/platform-top.h),用于添加u-boot所需的环境变量,实现动态加载比特流文件 - -### 编译系统 - -1. 编译工程,使用命令`petalinux-build`。编译完成,在当前工程目录下生成`images`文件夹,该命令将生成设备树文件、`FSBL`文件、`U-Boot`文件,`Linux Kernel`文件和`rootfs`文件镜像 - -2. 制作BOOT.BIN启动文件,具体命令如下: - - ```shell - $ cd ~/ps-linux/images/linux/ # 生成的BOOT.BIN在该路径下 - $ petalinux-package --boot --fsbl ./zynq_fsbl.elf --u-boot ./u-boot.elf --force - ``` - - -### 编译驱动 - -依次运行如下命令,编译驱动程序 - -```shell -$ petalinux-build -c encoder -``` - -编译后的模块文件为`ps-linux/build/tmp/sysroots-components/zynq_generic/encoder/lib/modules/5.15.36-xilinx-v2022.2/extra/encoder.ko` - -### 编译应用程序 - -在运行make时要设置好交叉编译工具链前缀,命令如下 -```shell -$ make CROSS_COMPILE=交叉编译工具链前缀 -例如 make CROSS_COMPILE=/home/miaow/software/gcc-linaro-12.2.1-2023.04-x86_64_arm-linux-gnueabihf/bin/arm-none-linux-gnueabihf- -``` - -编译后的可执行文件为工程目录的`build/target`,交叉编译工具链前缀也可以在Makefile中修改设定 - -## 部署 - -有两种方式部署,一种是修改文件系统,这也是我第一次构建这个系统时的操作;另一种是直接写入镜像,推荐使用这种方式,省时省力不易出错 - -> 注意:修改文件系统方法所需的文件按上一章节编译得到或者从github的release中下载;直接写入镜像所需的文件在release中 - - -### 修改文件系统 - -1. 给SD卡创建DOS分区表,然后分2个区并创建文件系统,细节如下表: - - | 扇区 | 大小 | 分区类型 | 文件系统 | 卷标 | - | -------------- | -------------- | ----------------- | -------- | ------ | - | 2048~x扇区 | 100M | C W95 FAT32 (LBA) | FAT32 | boot | - | x扇区~最后扇区 | ≈SD卡大小-100M | 83 Linux | ext4 | rootfs | - -2. 将打包和编译得到的`BOOT.BIN`、`boot.scr`、`system.bit`和`image.ub`复制到`boot`分区;将`rootfs.tar.gz`解压到`rootfs`分区 - - 这里的`system.bit`为比特流文件,可以由`petalinux`从`XSA`文件中提取,也可以是`vivado`生成的,注意重命名为`system.bit`。 - -3. 拨码开关拨到SD卡启动,插入SD卡到XME0724底板上,上电启动。 - -4. 终端软件连接底板上的串口,波特率115200,8位,1停止位,无校验 - -> 注意:github的release中包含了修改完成的`rootfs.tar.gz`,因此无需重复下面的步骤,这里仅用作记录修改步骤 - -5. 修改`/etc/shadow`文件,将`root`用户的密码删除,切换到`root`用户并设定密码为`3703`,具体命令如下: - - ```shell - $ sudo sed "1c root::15069:0:99999:7:::" /etc/shadow - # 如果没有sed命令,用任何其他方式都可以,比如vim - $ su root - $ passwd - ``` - - -6. 配置网络和`ssh`服务,用`root`登录: - - ```shell - $ vi /etc/network/interfaces - 添加或确认内容如下: - auto eth0 - iface eth0 inet static - address 192.168.10.10 - netmask 255.255.255.0 - gateway 192.168.10.1 - $ vi /etc/ssh/sshd_config - 确认修改如下选项: - PermitRootLogin yes - PermitEmptyPasswords yes - PasswordAuthentication yes - $ reboot - ``` - -7. 电脑网卡设置到开发板同一网段 SSH连接信息如下 - - ```shell - 在电脑上执行下面命令 - $ sshpass -p "3703" ssh root@192.168.10.10 -p 22 - ``` - -8. 安装编译得到的驱动文件`encode.ko`,并设置自动加载,对应自启脚本可以如下方式写入,也可以直接上传[script/loadencoder.sh](../script/loadencoder.sh),ssh方式,`root`登录: - - ```shell - 上传encoder.ko到/lib/modules/[内核版本]/extra/ - $ cd /lib/modules/[内核版本]/extra/; depmod - $ set +H - $ echo -e "#!/bin/sh\nmodprobe encoder" > /etc/init.d/loadencoder.sh - $ chmod 755 /etc/init.d/loadencoder.sh - $ cd /etc/rc5.d - $ ln -s ../init.d/loadencoder.sh S20loadencoder.sh - ``` - -9. 安装编译得到的应用程序target,并设置自启动,对应脚本见[script/target.sh](../script/target.sh) - - ssh方式,root登录: - - ```shell - 上传target到/home/root - $ cd ~ - $ chmod 755 target - $ set +H - $ echo -e "#!/bin/sh\nif [ -x /home/root/target ]; then\n /home/root/target\nfi" > /etc/init.d/target.sh - $ chmod 755 /etc/init.d/target.sh - $ cd /etc/rc5.d - $ ln -s ../init.d/target.sh S99target.sh - ``` - -10. \[可选\] 设置`.bashrc`,修改`PS1`,对应脚本见[script/.profile](../script/.profile)和[script/.bashrc](../script/.bashrc) - - ```shell - $ cd ~; rm .bashrc .profile - 上传.bashrc和.profile到/home/root - $ if [ ! -a /home/petalinux/.profile ]; then cp /home/ root/.profile /home/petalinux/ fi - $ if [ ! -a /home/petalinux/.bashrc ]; then cp /home/root/. bashrc /home/petalinux/ & chown petalinux:petalinux -R / home/petalinux fi - $ source ~/.profile - ``` - -11. \[可选\] 安装`ncurses-6.3`和`htop` - - ```shell - $ cd ~; rz # 上传ncurses-6.3.tar.gz - $ tar xmzf /home/root/ncurses-6.3.tar.gz -C /usr/ - $ rz # 上传htop.tar.gz - $ tar xmzf /home/root/htop.tar.gz -C /usr/ - $ echo "export TERMINFO=/usr/share/terminfo" >> /etc/profile - $ reboot - ``` - -### 直接写入镜像 - -强烈推荐的傻瓜式的方法,在windows上准备好正版[DiskGenius标准版或专业版](https://www.diskgenius.cn/),盗版有概率写入错误数据,从release中下载`sdimage.pmfx`文件 - -1. 在windows上插入16G的TF卡 -2. 打开`DiskGenius` -3. 左侧栏选中TF卡,右键,从镜像文件还原磁盘 -4. 选`sdimage.pmfx`文件 -5. 点击开始 - -把TF卡插回板子,启动方式拨到SD卡启动,上电。要进入系统,参考修改文件系统章节的第7步。 diff --git a/doc/hardware_description.assets/system_arch.svg b/doc/hardware_description.assets/system_arch.svg deleted file mode 100644 index ac15b3f..0000000 --- a/doc/hardware_description.assets/system_arch.svg +++ /dev/null @@ -1 +0,0 @@ -DDRFIXED_IOip_encoder_0ip_encoder_v1.0 (Pre-Production)S00_AXIin_signalexrst_nout_signal_valve_posedgeout_signal_valveout_signal_camera_a_posedgeout_signal_camera_b_posedgeout_signal_camera_c_posedgeout_signal_camera_d_posedgeout_signal_camera_aout_signal_camera_bout_signal_camera_cout_signal_camera_ds00_axi_aclks00_axi_aresetnip_fan_0ip_fan_v1.0 (Pre-Production)S00_AXIfans00_axi_aclks00_axi_aresetnencoder_signalexrst_n_0fanout_signal_camera_aout_signal_camera_bout_signal_camera_cout_signal_camera_dprocessing_system7_0ZYNQ7 Processing SystemDDRFIXED_IOUSBIND_0M_AXI_GP0TTC0_WAVE0_OUTTTC0_WAVE1_OUTTTC0_WAVE2_OUTM_AXI_GP0_ACLKFCLK_CLK0FCLK_RESET0_Nps7_0_axi_periphAXI InterconnectS00_AXIM00_AXIM01_AXIM02_AXIACLKARESETNS00_ACLKS00_ARESETNM00_ACLKM00_ARESETNM01_ACLKM01_ARESETNM02_ACLKM02_ARESETNrst_ps7_0_200MProcessor System Resetslowest_sync_clkext_reset_inaux_reset_inmb_debug_sys_rstdcm_lockedmb_resetbus_struct_reset[0:0]peripheral_reset[0:0]interconnect_aresetn[0:0]peripheral_aresetn[0:0] \ No newline at end of file diff --git a/doc/hardware_description.md b/doc/hardware_description.md deleted file mode 100644 index ebfef64..0000000 --- a/doc/hardware_description.md +++ /dev/null @@ -1,46 +0,0 @@ -# 硬件平台 - -PL端主要由2个外设组成,分别时**风扇控制器**(FAN),**编码和分频控制器**(ENCODER),各个控制器的连接关系如下图所示。 - -![2](hardware_description.assets/system_arch.svg) - -由于开发板的PL端没有自带晶振,所以2个外设由统一的同步时钟驱动,时钟源来自PS端,为200MHz,软件不可修改。外部编码器信号和物体检测传感器信号输入**编码和分频控制器**,控制器根据软件设置的阀触发分频值和相机触发分频值对编码器信号进行分频,分频后的信号用于触发相机拍照。 - -**风扇控制器**用于驱动风扇的启停,给ZYNQ芯片进行降温,防止芯片过热导致工作中出现问题。由于风扇寿命短,因此目前采用散热片方案,风扇不开。 - -## PS模块 - -下面列出需要开启的外设和采用的IO口,BANK0为LVCMOS3.3V,BANK1为LVCOMS1.8V - -| 外设 | IO | 备注 | -| --------------------------------------------------- | ---------------------- | -------------------------------------- | -| Quad SPI Flash | 1~6 | Single SS 4bit IO,Fast , ss_b pullup | -| Ethernet 0
MDIO | 16~27
52~53 | Fast, all pullup | -| USB0 | 28~39 | Fast, all pullup | -| SD0 | 40~45 | Fast, all pullup | -| SD1 | 46~51 | Fast, all pullup | -| UART0 | 14~15 | all pullup, baud 115200, 8bits, 1 stop | -| TTC0 | EMIO | | -| GPIO MIO
Ethernet PHY Reset
USB PHY Reset | 所有剩下的
7
8 | Fast, all pullup | - -时钟配置上,ARM为666.66MHz,DDR为533.33MHz,用IOPLL给PL端提供200MHz的FCLK_CLK0。 - -如果用的是7010的板子,内存选忽略下面这一段:内存配置上,选择DDR3,数据位宽32bit=16bit/chip \* 2chip, 4096Mbits/chip,频率533.33,速度等级为1066F,行/列/Bank地址宽度为15/10/3,CL=7,CWL=6,RCD=7,RP=7,RC=51ns,FAW=40ns - -ARM核上还开启AXI GP0接口与PL通信 - -## ENCODER模块 - -encoder模块主要接口为in_signal、out_signal_camera_a_posedge、out_signal_camera_b_posedge、out_signal_camera_c_posedge、out_signal_camera_d_posedge、out_signal_valve_posedge、out_signal_camera_a、out_signal_camera_b、out_signal_camera_c、out_signal_camera_d、out_signal_valve、exrst_n - -终于,我们重新实现了被老倪乱起八糟的需求搞的几乎奔溃的模块,现在这个模块已经比较简洁了 - -1. in_signal接口与外部编码器相连,接收外部编码器信号 -2. out_signal_camera_a到d最多课用于触发共4个相机 -3. out_signal_camera_posedge_a到d为上述信号的上升沿,固定不连接。 -4. out_signal_valve_posedge为out_signal_valve的上升沿,固定不连接。 -5. exrst_n为可选的外部复位清零信号,可用于连接物体传感器,根据需要屏蔽相机触发输出 - - -ENCODER模块输入输出频率的详细计算方式和寄存器说明见[doc/pl_reference_mannual.md](pl_reference_mannual.md)中的ENCODER控制器部分 - diff --git a/doc/pl_reference_mannual.assets/blocks.pptx b/doc/pl_reference_mannual.assets/blocks.pptx deleted file mode 100644 index 552ce90..0000000 Binary files a/doc/pl_reference_mannual.assets/blocks.pptx and /dev/null differ diff --git a/doc/pl_reference_mannual.assets/encoder_block.svg b/doc/pl_reference_mannual.assets/encoder_block.svg deleted file mode 100644 index 4827922..0000000 --- a/doc/pl_reference_mannual.assets/encoder_block.svg +++ /dev/null @@ -1 +0,0 @@ -Virtual TrigEx/In TrigCLRCamADiv[31:0]CamBDiv[31:0]Valve Div[31:0]CamCDiv[31:0]CamDDiv[31:0]CamATrigCamBTrigCamCTrigCamDTrigValve TrigEncoder InExCLR \ No newline at end of file diff --git a/doc/pl_reference_mannual.assets/encoder_cdivrx.svg b/doc/pl_reference_mannual.assets/encoder_cdivrx.svg deleted file mode 100644 index e5ffbbe..0000000 --- a/doc/pl_reference_mannual.assets/encoder_cdivrx.svg +++ /dev/null @@ -1 +0,0 @@ -31302928272625242322212019181716rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw1514131211109876543210rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwCDIV[31:16]CDIV[15:0] \ No newline at end of file diff --git a/doc/pl_reference_mannual.assets/encoder_cr.svg b/doc/pl_reference_mannual.assets/encoder_cr.svg deleted file mode 100644 index 8890d9d..0000000 --- a/doc/pl_reference_mannual.assets/encoder_cr.svg +++ /dev/null @@ -1 +0,0 @@ -313029282726252423222120191817161514131211109876543210ICOVTSMODCLRrwrwrwrwReservedReserved \ No newline at end of file diff --git a/doc/pl_reference_mannual.assets/encoder_regs.svg b/doc/pl_reference_mannual.assets/encoder_regs.svg deleted file mode 100644 index 6ddaefb..0000000 --- a/doc/pl_reference_mannual.assets/encoder_regs.svg +++ /dev/null @@ -1 +0,0 @@ -偏移寄存器313029282726252423222120191817161514131211109876543210ENCODER_CRICOVTSMODCLRReset value1000ENCODER_VDIVRReset value00000000000000000000000000000000ENCODER_CDIVRAReset value00000000000000000000000000000000ENCODER_CDIVRBReset value00000000000000000000000000000000ENCODER_CDIVRCReset value00000000000000000000000000000000ENCODER_CDIVRDReset value000000000000000000000000000000000x10CDIV[31:0]0x14CDIV[31:0]0x0CCDIV[31:0]0x000x04VDIV[31:0]0x08CDIV[31:0]Reserved \ No newline at end of file diff --git a/doc/pl_reference_mannual.assets/encoder_vdivr.svg b/doc/pl_reference_mannual.assets/encoder_vdivr.svg deleted file mode 100644 index 1a0550b..0000000 --- a/doc/pl_reference_mannual.assets/encoder_vdivr.svg +++ /dev/null @@ -1 +0,0 @@ -31302928272625242322212019181716rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw1514131211109876543210rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwVDIV[15:0]VDIV[31:16] \ No newline at end of file diff --git a/doc/pl_reference_mannual.assets/fan_block.svg b/doc/pl_reference_mannual.assets/fan_block.svg deleted file mode 100644 index ace8bbd..0000000 --- a/doc/pl_reference_mannual.assets/fan_block.svg +++ /dev/null @@ -1 +0,0 @@ -SPDENFAN \ No newline at end of file diff --git a/doc/pl_reference_mannual.assets/fan_cr.png b/doc/pl_reference_mannual.assets/fan_cr.png deleted file mode 100644 index aeba73b..0000000 Binary files a/doc/pl_reference_mannual.assets/fan_cr.png and /dev/null differ diff --git a/doc/pl_reference_mannual.assets/fan_regs.png b/doc/pl_reference_mannual.assets/fan_regs.png deleted file mode 100644 index b7f1ba2..0000000 Binary files a/doc/pl_reference_mannual.assets/fan_regs.png and /dev/null differ diff --git a/doc/pl_reference_mannual.assets/fan_spdr.png b/doc/pl_reference_mannual.assets/fan_spdr.png deleted file mode 100644 index 4841e46..0000000 Binary files a/doc/pl_reference_mannual.assets/fan_spdr.png and /dev/null differ diff --git a/doc/pl_reference_mannual.assets/fifo_block.svg b/doc/pl_reference_mannual.assets/fifo_block.svg deleted file mode 100644 index d9d6445..0000000 --- a/doc/pl_reference_mannual.assets/fifo_block.svg +++ /dev/null @@ -1 +0,0 @@ -DT_OUT[383:0]xEMPTYFULLALMOST_EMPTYALMOST_FULLCOUNT[11:0]FIFO_VALIDRD_SYNWR_SYNCLEARDT_IN[383:0] \ No newline at end of file diff --git a/doc/pl_reference_mannual.assets/regs.xlsx b/doc/pl_reference_mannual.assets/regs.xlsx deleted file mode 100644 index c407676..0000000 Binary files a/doc/pl_reference_mannual.assets/regs.xlsx and /dev/null differ diff --git a/doc/pl_reference_mannual.assets/system_arch.svg b/doc/pl_reference_mannual.assets/system_arch.svg deleted file mode 100644 index ac15b3f..0000000 --- a/doc/pl_reference_mannual.assets/system_arch.svg +++ /dev/null @@ -1 +0,0 @@ -DDRFIXED_IOip_encoder_0ip_encoder_v1.0 (Pre-Production)S00_AXIin_signalexrst_nout_signal_valve_posedgeout_signal_valveout_signal_camera_a_posedgeout_signal_camera_b_posedgeout_signal_camera_c_posedgeout_signal_camera_d_posedgeout_signal_camera_aout_signal_camera_bout_signal_camera_cout_signal_camera_ds00_axi_aclks00_axi_aresetnip_fan_0ip_fan_v1.0 (Pre-Production)S00_AXIfans00_axi_aclks00_axi_aresetnencoder_signalexrst_n_0fanout_signal_camera_aout_signal_camera_bout_signal_camera_cout_signal_camera_dprocessing_system7_0ZYNQ7 Processing SystemDDRFIXED_IOUSBIND_0M_AXI_GP0TTC0_WAVE0_OUTTTC0_WAVE1_OUTTTC0_WAVE2_OUTM_AXI_GP0_ACLKFCLK_CLK0FCLK_RESET0_Nps7_0_axi_periphAXI InterconnectS00_AXIM00_AXIM01_AXIM02_AXIACLKARESETNS00_ACLKS00_ARESETNM00_ACLKM00_ARESETNM01_ACLKM01_ARESETNM02_ACLKM02_ARESETNrst_ps7_0_200MProcessor System Resetslowest_sync_clkext_reset_inaux_reset_inmb_debug_sys_rstdcm_lockedmb_resetbus_struct_reset[0:0]peripheral_reset[0:0]interconnect_aresetn[0:0]peripheral_aresetn[0:0] \ No newline at end of file diff --git a/doc/pl_reference_mannual.md b/doc/pl_reference_mannual.md deleted file mode 100644 index 4ce6ab3..0000000 --- a/doc/pl_reference_mannual.md +++ /dev/null @@ -1,139 +0,0 @@ -# PL 端自定义外设参考手册 - -## 存储器和总线架构 - -### 系统架构 - -PL端主要由2个外设组成,分别时**风扇控制器**(FAN),**编码和分频控制器**(ENCODER)。各个控制器的连接关系如下图所示。 - -![system_arch](./pl_reference_mannual.assets/system_arch.svg) - -2个外设由统一的同步时钟驱动,时钟源来自PS端,为200MHz,软件不可修改。外部编码器信号和物体传感器信号输入**编码和分频控制器**,控制器根据软件设置的相机触发分频值对编码器信号进行分频。为同步触发相机。 - -具体的硬件设计和信号说明见[doc/hardware_description.md](hardware_description.md) - -各控制器的边界地址和所属总线等信息如下表所示 - -| 边界地址 | 外设 | 总线 | -| ----------------------- | ---------------- | --------- | -| 0x43c10000 - 0x43c1ffff | 编码和分频控制器 | M_AXI_GP0 | -| 0x43c20000 - 0x43c2ffff | 风扇控制器 | M_AXI_GP0 | - -## 风扇控制器 (FAN) - -### FAN简介 - -FAN模块用于控 制散热风扇的启停以及通过PWM调整风扇速度。通过对寄存器写入值,该模块能正常启停散热风扇,但由于代码与硬件兼容问题,导致无法观察到调速现象。 - -### FAN主要特性 - -- 能控制风扇的启停 -- 自定义占空比,调整风扇转速 - -### FAN功能说明 - -fan_block - -通过将开启使能拉高,开启风扇。通过向风速寄存器写入PWM占空值,控制风扇减少或提高风速。 - -### FAN寄存器说明 - -FAN模块寄存器主要包括控制寄存器 (FAN_CR)、风速寄存器 (FAN_SPDR)。控制寄存器 (FAN_CR)用于控制风扇开启或关闭的状态,风速寄存器 (FAN_SPDR)通过PWM技术设置风扇转动的速度。 - -**Base Address: 0x43c20000** - -#### FAN控制寄存器 (FAN_CR) - -偏移地址: 0x00
复位值: 0x0000 0000 - -![fan_cr](pl_reference_mannual.assets/fan_cr.png) - -| **Field** | **Description** | -| :----------- | :----------------------------------------------------------- | -| 位31:16 保留 | 必须保持复位值 | -| 位0 **EN** | 内部触发信号 (Virtual Triggle Signal)
0: 停止风扇
1: 开启风扇 | - -#### FAN风速寄存器 (FAN_SPDR) - -偏移地址: 0x04
复位值: 0x0000 0000 - -![fan_spdr](pl_reference_mannual.assets/fan_spdr.png) - -| **Field** | **Description** | -| :------------- | :----------------------------------------------------------- | -| 位31:0 **SPD** | 该寄存器值表示设置的风扇PWM占空值,占空比转换公式如下。
占空比% = SPD / (2 ^ 32 - 1) * 100% | - -#### FAN寄存器映射 - -FAN寄存器可映射为32位可寻址寄存器,如下表所述: - -![fan_regs](pl_reference_mannual.assets/fan_regs.png) - -## 编码和分频控制器 (ENCODER) - -### ENCODER简介 - -ENCODER模块主要用于实现编码器计数以及对编码器脉冲进行分频,分频后的脉冲信号输出给相机。该模块包括1个控制寄存器 (ENCODER_CR)、阀触发分频寄存器 (ENCODER_VDIVR)、相机触发分频寄存器 (ENCODER_CDIVR)。 - -### ENCODER主要特性 - -- 独立设置对相机和喷阀的分频系数 -- 内外两种触发模式选择 -- 可选的外部清零方式 - -### ENCODER功能说明 - -下图给出了ENCODER的主要信号: - -图片1 - -ENCODER模块接收编码器脉冲信号,通过设置的相机和喷阀分频系数,生成对应的触发信号。编码器脉冲信号可由内部或外部触发模式产生。 - -### ENCODER寄存器说明 - -ENCODER模块的寄存器主要有控制寄存器 (ENCODER_CR)、阀触发分频寄存器 (ENCODER_VDIVR)和相机触发分频寄存器 (ENCODER_CDIVR)。控制寄存器 (ENCODER_CR)用于进行触发模式选择以及复位清空,阀触发分频寄存器 (ENCODER_VDIVR)用于寄存输入的分频系数,将编码器脉冲除以分频系数得到触发脉冲。 - -**Base Address: 0x43c10000** - -#### ENCODER控制寄存器 (ENCODER_CR) - -偏移地址: 0x00
复位值: 0x0000 0008 - -![ ](pl_reference_mannual.assets/encoder_cr.svg) - -| **Field** | **Description** | -| :---------- | :----------------------------------------------------------- | -| 位31:4 保留 | 必须保持复位值 | -| 位3 **ICO** | 仅限内部清除缓存 (Internal Clear Only)
0: 同时允许由外部输入**Ex CLR**和清除缓存位**CLR**控制进入清零状态
清零状态见位**CLR**的描述;外部输入为高时,退出清零状态
1: 仅限内部信号清除缓存 | -| 位2 **VTS** | 内部触发信号 (Virtual Triggle Signal)
**MOD**位置1时,由软件写入,将该位信号直接充当触发信号
0: 低电平
1: 高电平 | -| 位1 **MOD** | 模式选择 (Mode)
0: 外部触发模式,外部触发编码器转动
1: 内部触发模式,软件模拟触发信号 | -| 位0 **CLR** | 清除缓存 (Clear)
0: 清除编码和分频控制器内部的分频计数值,不影响ENCODER_VDIVR和ENCODER_CDIVRx
注意: 程序清零该位后需再写入1,使计数器退出清零状态,正常工作
1: 正常工作 | - -#### ENCODER阀触发分频寄存器 (ENCODER_VDIVR) - -偏移地址: 0x04
复位值: 0x0000 0000 - -![image-20220613202916591](pl_reference_mannual.assets/encoder_vdivr.svg) - -| **Field** | **Description** | -| :-------------- | :----------------------------------------------------------- | -| 位31:0 **VDIV** | 阀触发分频值
阀控制器重采样频率和编码器脉冲的分频值, 写入数据后编码和分频控制器自动清除缓存并应用新的数值
注意:0表示不间断触发,即PL端每个时钟周期均触发阀模块 | - -#### ENCODER相机触发分频寄存器 (ENCODER_CDIVRx) (x=A...D) - -用于设定相机A到相机D的分频系数,各相机可独立设置 - -偏移地址: 0x08
复位值: 0x0000 0000 - -![image-20220613202916591](pl_reference_mannual.assets/encoder_cdivrx.svg) - -| **Field** | **Description** | -| :-------------- | :----------------------------------------------------------- | -| 位31:0 **CDIV** | 相机触发分频值
写入数据后编码和分频控制器自动清除缓存并应用新的数值
注意:0表示不间断触发,即PL端每个时钟周期均触发相机 | - -#### ENCODER寄存器映射 - -ENCODER寄存器可映射为32位可寻址寄存器,如下表所述: - -![encoder_regs](pl_reference_mannual.assets/encoder_regs.svg) - diff --git a/doc/sim_uppermachine_manual.assets/2.png b/doc/sim_uppermachine_manual.assets/2.png deleted file mode 100644 index f108621..0000000 Binary files a/doc/sim_uppermachine_manual.assets/2.png and /dev/null differ diff --git a/doc/sim_uppermachine_manual.md b/doc/sim_uppermachine_manual.md deleted file mode 100644 index b6b7423..0000000 --- a/doc/sim_uppermachine_manual.md +++ /dev/null @@ -1,11 +0,0 @@ -# 模拟上位机说明文档 - -## 模拟上位机连接下位机 - -模拟上位机使用python编写,如下图所示,实现显示界面并与下位机通信发送四个相机的分频值。运行程序后,出现显示界面,连接网线并选择Server IP为运行模拟上位机程序的本机系统中手动设定的IP地址,Server Port端号为13452(默认)。选择完成后等待连接,当界面下方出现本机与下位机的IP地址时即为连接成功。 - -## 模拟上位机发送指令 - -模拟上位机与下位机连接成功后,可在MANUAL栏中发送通信协议中对应的命令,在PRESET栏中填写四个相机触发所需的分频值,在发送分频值前,需要先点击停止按钮,然后点击对应的A、B、C、D按钮即可发送各相机对应的分频值,最后点击Start按钮即可将分频值发送给下位机。 - -![](sim_uppermachine_manual.assets/2.png) \ No newline at end of file diff --git a/doc/version b/doc/version deleted file mode 100644 index 7c483e8..0000000 --- a/doc/version +++ /dev/null @@ -1 +0,0 @@ -1.7 \ No newline at end of file diff --git a/hardware/xme0724ioextend/lib/mw.PcbLib b/hardware/ac7z100cioextend/lib/mw.PcbLib similarity index 100% rename from hardware/xme0724ioextend/lib/mw.PcbLib rename to hardware/ac7z100cioextend/lib/mw.PcbLib diff --git a/hardware/xme0724ioextend/lib/mw.SchLib b/hardware/ac7z100cioextend/lib/mw.SchLib similarity index 100% rename from hardware/xme0724ioextend/lib/mw.SchLib rename to hardware/ac7z100cioextend/lib/mw.SchLib diff --git a/hardware/xme0724ioextend/res/PCT.png b/hardware/ac7z100cioextend/res/PCT.png similarity index 100% rename from hardware/xme0724ioextend/res/PCT.png rename to hardware/ac7z100cioextend/res/PCT.png diff --git a/hardware/xme0724ioextend/res/ce.png b/hardware/ac7z100cioextend/res/ce.png similarity index 100% rename from hardware/xme0724ioextend/res/ce.png rename to hardware/ac7z100cioextend/res/ce.png diff --git a/hardware/xme0724ioextend/res/csa.png b/hardware/ac7z100cioextend/res/csa.png similarity index 100% rename from hardware/xme0724ioextend/res/csa.png rename to hardware/ac7z100cioextend/res/csa.png diff --git a/hardware/xme0724ioextend/res/ekmark.png b/hardware/ac7z100cioextend/res/ekmark.png similarity index 100% rename from hardware/xme0724ioextend/res/ekmark.png rename to hardware/ac7z100cioextend/res/ekmark.png diff --git a/hardware/xme0724ioextend/res/emc.png b/hardware/ac7z100cioextend/res/emc.png similarity index 100% rename from hardware/xme0724ioextend/res/emc.png rename to hardware/ac7z100cioextend/res/emc.png diff --git a/hardware/xme0724ioextend/res/etl.png b/hardware/ac7z100cioextend/res/etl.png similarity index 100% rename from hardware/xme0724ioextend/res/etl.png rename to hardware/ac7z100cioextend/res/etl.png diff --git a/hardware/xme0724ioextend/res/fcc.png b/hardware/ac7z100cioextend/res/fcc.png similarity index 100% rename from hardware/xme0724ioextend/res/fcc.png rename to hardware/ac7z100cioextend/res/fcc.png diff --git a/hardware/xme0724ioextend/res/pse.png b/hardware/ac7z100cioextend/res/pse.png similarity index 100% rename from hardware/xme0724ioextend/res/pse.png rename to hardware/ac7z100cioextend/res/pse.png diff --git a/hardware/xme0724ioextend/res/rohs.png b/hardware/ac7z100cioextend/res/rohs.png similarity index 100% rename from hardware/xme0724ioextend/res/rohs.png rename to hardware/ac7z100cioextend/res/rohs.png diff --git a/hardware/xme0724ioextend/res/semko.png b/hardware/ac7z100cioextend/res/semko.png similarity index 100% rename from hardware/xme0724ioextend/res/semko.png rename to hardware/ac7z100cioextend/res/semko.png diff --git a/hardware/xme0724ioextend/res/tuv.png b/hardware/ac7z100cioextend/res/tuv.png similarity index 100% rename from hardware/xme0724ioextend/res/tuv.png rename to hardware/ac7z100cioextend/res/tuv.png diff --git a/hardware/xme0724ioextend/res/ul.png b/hardware/ac7z100cioextend/res/ul.png similarity index 100% rename from hardware/xme0724ioextend/res/ul.png rename to hardware/ac7z100cioextend/res/ul.png diff --git a/hardware/xme0724ioextend/res/vcci.png b/hardware/ac7z100cioextend/res/vcci.png similarity index 100% rename from hardware/xme0724ioextend/res/vcci.png rename to hardware/ac7z100cioextend/res/vcci.png diff --git a/hardware/xme0724ioextend/res/vde.png b/hardware/ac7z100cioextend/res/vde.png similarity index 100% rename from hardware/xme0724ioextend/res/vde.png rename to hardware/ac7z100cioextend/res/vde.png diff --git a/hardware/pl_platform/bd/system.tcl b/hardware/pl_platform/bd/system.tcl deleted file mode 100644 index 031d029..0000000 --- a/hardware/pl_platform/bd/system.tcl +++ /dev/null @@ -1,648 +0,0 @@ - -################################################################ -# This is a generated script based on design: system -# -# Though there are limitations about the generated script, -# the main purpose of this utility is to make learning -# IP Integrator Tcl commands easier. -################################################################ - -namespace eval _tcl { -proc get_script_folder {} { - set script_path [file normalize [info script]] - set script_folder [file dirname $script_path] - return $script_folder -} -} -variable script_folder -set script_folder [_tcl::get_script_folder] - -################################################################ -# Check if script is running in correct Vivado version. -################################################################ -set scripts_vivado_version 2022.1 -set current_vivado_version [version -short] - -if { [string first $scripts_vivado_version $current_vivado_version] == -1 } { - puts "" - catch {common::send_gid_msg -ssname BD::TCL -id 2041 -severity "ERROR" "This script was generated using Vivado <$scripts_vivado_version> and is being run in <$current_vivado_version> of Vivado. Please run the script in Vivado <$scripts_vivado_version> then open the design in Vivado <$current_vivado_version>. Upgrade the design by running \"Tools => Report => Report IP Status...\", then run write_bd_tcl to create an updated script."} - - return 1 -} - -################################################################ -# START -################################################################ - -# To test this script, run the following commands from Vivado Tcl console: -# source system_script.tcl - -# If there is no project opened, this script will create a -# project, but make sure you do not have an existing project -# <./myproj/project_1.xpr> in the current working folder. - -set list_projs [get_projects -quiet] -if { $list_projs eq "" } { - create_project project_1 myproj -part xc7z010clg400-1 -} - - -# CHANGE DESIGN NAME HERE -variable design_name -set design_name system - -# If you do not already have an existing IP Integrator design open, -# you can create a design using the following command: -# create_bd_design $design_name - -# Creating design if needed -set errMsg "" -set nRet 0 - -set cur_design [current_bd_design -quiet] -set list_cells [get_bd_cells -quiet] - -if { ${design_name} eq "" } { - # USE CASES: - # 1) Design_name not set - - set errMsg "Please set the variable to a non-empty value." - set nRet 1 - -} elseif { ${cur_design} ne "" && ${list_cells} eq "" } { - # USE CASES: - # 2): Current design opened AND is empty AND names same. - # 3): Current design opened AND is empty AND names diff; design_name NOT in project. - # 4): Current design opened AND is empty AND names diff; design_name exists in project. - - if { $cur_design ne $design_name } { - common::send_gid_msg -ssname BD::TCL -id 2001 -severity "INFO" "Changing value of from <$design_name> to <$cur_design> since current design is empty." - set design_name [get_property NAME $cur_design] - } - common::send_gid_msg -ssname BD::TCL -id 2002 -severity "INFO" "Constructing design in IPI design <$cur_design>..." - -} elseif { ${cur_design} ne "" && $list_cells ne "" && $cur_design eq $design_name } { - # USE CASES: - # 5) Current design opened AND has components AND same names. - - set errMsg "Design <$design_name> already exists in your project, please set the variable to another value." - set nRet 1 -} elseif { [get_files -quiet ${design_name}.bd] ne "" } { - # USE CASES: - # 6) Current opened design, has components, but diff names, design_name exists in project. - # 7) No opened design, design_name exists in project. - - set errMsg "Design <$design_name> already exists in your project, please set the variable to another value." - set nRet 2 - -} else { - # USE CASES: - # 8) No opened design, design_name not in project. - # 9) Current opened design, has components, but diff names, design_name not in project. - - common::send_gid_msg -ssname BD::TCL -id 2003 -severity "INFO" "Currently there is no design <$design_name> in project, so creating one..." - - create_bd_design $design_name - - common::send_gid_msg -ssname BD::TCL -id 2004 -severity "INFO" "Making design <$design_name> as current_bd_design." - current_bd_design $design_name - -} - -common::send_gid_msg -ssname BD::TCL -id 2005 -severity "INFO" "Currently the variable is equal to \"$design_name\"." - -if { $nRet != 0 } { - catch {common::send_gid_msg -ssname BD::TCL -id 2006 -severity "ERROR" $errMsg} - return $nRet -} - -set bCheckIPsPassed 1 -################################################################## -# CHECK IPs -################################################################## -set bCheckIPs 1 -if { $bCheckIPs == 1 } { - set list_check_ips "\ -user.org:user:ip_encoder:1.1\ -user.org:user:ip_fan:1.0\ -xilinx.com:ip:processing_system7:5.5\ -xilinx.com:ip:proc_sys_reset:5.0\ -" - - set list_ips_missing "" - common::send_gid_msg -ssname BD::TCL -id 2011 -severity "INFO" "Checking if the following IPs exist in the project's IP catalog: $list_check_ips ." - - foreach ip_vlnv $list_check_ips { - set ip_obj [get_ipdefs -all $ip_vlnv] - if { $ip_obj eq "" } { - lappend list_ips_missing $ip_vlnv - } - } - - if { $list_ips_missing ne "" } { - catch {common::send_gid_msg -ssname BD::TCL -id 2012 -severity "ERROR" "The following IPs are not found in the IP Catalog:\n $list_ips_missing\n\nResolution: Please add the repository containing the IP(s) to the project." } - set bCheckIPsPassed 0 - } - -} - -if { $bCheckIPsPassed != 1 } { - common::send_gid_msg -ssname BD::TCL -id 2023 -severity "WARNING" "Will not continue with creation of design due to the error(s) above." - return 3 -} - -################################################################## -# DESIGN PROCs -################################################################## - - - -# Procedure to create entire design; Provide argument to make -# procedure reusable. If parentCell is "", will use root. -proc create_root_design { parentCell } { - - variable script_folder - variable design_name - - if { $parentCell eq "" } { - set parentCell [get_bd_cells /] - } - - # Get object for parentCell - set parentObj [get_bd_cells $parentCell] - if { $parentObj == "" } { - catch {common::send_gid_msg -ssname BD::TCL -id 2090 -severity "ERROR" "Unable to find parent cell <$parentCell>!"} - return - } - - # Make sure parentObj is hier blk - set parentType [get_property TYPE $parentObj] - if { $parentType ne "hier" } { - catch {common::send_gid_msg -ssname BD::TCL -id 2091 -severity "ERROR" "Parent <$parentObj> has TYPE = <$parentType>. Expected to be ."} - return - } - - # Save current instance; Restore later - set oldCurInst [current_bd_instance .] - - # Set parent object as current - current_bd_instance $parentObj - - - # Create interface ports - set DDR [ create_bd_intf_port -mode Master -vlnv xilinx.com:interface:ddrx_rtl:1.0 DDR ] - - set FIXED_IO [ create_bd_intf_port -mode Master -vlnv xilinx.com:display_processing_system7:fixedio_rtl:1.0 FIXED_IO ] - - - # Create ports - set encoder_signal [ create_bd_port -dir I encoder_signal ] - set exrst_n [ create_bd_port -dir I exrst_n ] - set fan [ create_bd_port -dir O fan ] - set out_signal_camera_a [ create_bd_port -dir O out_signal_camera_a ] - set out_signal_camera_b [ create_bd_port -dir O out_signal_camera_b ] - set out_signal_camera_c [ create_bd_port -dir O out_signal_camera_c ] - set out_signal_camera_d [ create_bd_port -dir O out_signal_camera_d ] - - # Create instance: ip_encoder_0, and set properties - set ip_encoder_0 [ create_bd_cell -type ip -vlnv user.org:user:ip_encoder:1.1 ip_encoder_0 ] - - # Create instance: ip_fan_0, and set properties - set ip_fan_0 [ create_bd_cell -type ip -vlnv user.org:user:ip_fan:1.0 ip_fan_0 ] - - # Create instance: processing_system7_0, and set properties - set processing_system7_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:processing_system7:5.5 processing_system7_0 ] - set_property -dict [ list \ - CONFIG.PCW_ACT_APU_PERIPHERAL_FREQMHZ {666.666687} \ - CONFIG.PCW_ACT_CAN_PERIPHERAL_FREQMHZ {10.000000} \ - CONFIG.PCW_ACT_DCI_PERIPHERAL_FREQMHZ {10.158730} \ - CONFIG.PCW_ACT_ENET0_PERIPHERAL_FREQMHZ {125.000000} \ - CONFIG.PCW_ACT_ENET1_PERIPHERAL_FREQMHZ {10.000000} \ - CONFIG.PCW_ACT_FPGA0_PERIPHERAL_FREQMHZ {200.000000} \ - CONFIG.PCW_ACT_FPGA1_PERIPHERAL_FREQMHZ {10.000000} \ - CONFIG.PCW_ACT_FPGA2_PERIPHERAL_FREQMHZ {10.000000} \ - CONFIG.PCW_ACT_FPGA3_PERIPHERAL_FREQMHZ {10.000000} \ - CONFIG.PCW_ACT_PCAP_PERIPHERAL_FREQMHZ {200.000000} \ - CONFIG.PCW_ACT_QSPI_PERIPHERAL_FREQMHZ {200.000000} \ - CONFIG.PCW_ACT_SDIO_PERIPHERAL_FREQMHZ {100.000000} \ - CONFIG.PCW_ACT_SMC_PERIPHERAL_FREQMHZ {10.000000} \ - CONFIG.PCW_ACT_SPI_PERIPHERAL_FREQMHZ {10.000000} \ - CONFIG.PCW_ACT_TPIU_PERIPHERAL_FREQMHZ {200.000000} \ - CONFIG.PCW_ACT_TTC0_CLK0_PERIPHERAL_FREQMHZ {111.111115} \ - CONFIG.PCW_ACT_TTC0_CLK1_PERIPHERAL_FREQMHZ {111.111115} \ - CONFIG.PCW_ACT_TTC0_CLK2_PERIPHERAL_FREQMHZ {111.111115} \ - CONFIG.PCW_ACT_TTC1_CLK0_PERIPHERAL_FREQMHZ {111.111115} \ - CONFIG.PCW_ACT_TTC1_CLK1_PERIPHERAL_FREQMHZ {111.111115} \ - CONFIG.PCW_ACT_TTC1_CLK2_PERIPHERAL_FREQMHZ {111.111115} \ - CONFIG.PCW_ACT_UART_PERIPHERAL_FREQMHZ {100.000000} \ - CONFIG.PCW_ACT_WDT_PERIPHERAL_FREQMHZ {111.111115} \ - CONFIG.PCW_ARMPLL_CTRL_FBDIV {40} \ - CONFIG.PCW_CAN_PERIPHERAL_DIVISOR0 {1} \ - CONFIG.PCW_CAN_PERIPHERAL_DIVISOR1 {1} \ - CONFIG.PCW_CLK0_FREQ {200000000} \ - CONFIG.PCW_CLK1_FREQ {10000000} \ - CONFIG.PCW_CLK2_FREQ {10000000} \ - CONFIG.PCW_CLK3_FREQ {10000000} \ - CONFIG.PCW_CPU_CPU_PLL_FREQMHZ {1333.333} \ - CONFIG.PCW_CPU_PERIPHERAL_DIVISOR0 {2} \ - CONFIG.PCW_DCI_PERIPHERAL_DIVISOR0 {15} \ - CONFIG.PCW_DCI_PERIPHERAL_DIVISOR1 {7} \ - CONFIG.PCW_DDRPLL_CTRL_FBDIV {32} \ - CONFIG.PCW_DDR_DDR_PLL_FREQMHZ {1066.667} \ - CONFIG.PCW_DDR_PERIPHERAL_DIVISOR0 {2} \ - CONFIG.PCW_DDR_RAM_HIGHADDR {0x1FFFFFFF} \ - CONFIG.PCW_ENET0_ENET0_IO {MIO 16 .. 27} \ - CONFIG.PCW_ENET0_GRP_MDIO_ENABLE {1} \ - CONFIG.PCW_ENET0_GRP_MDIO_IO {MIO 52 .. 53} \ - CONFIG.PCW_ENET0_PERIPHERAL_CLKSRC {IO PLL} \ - CONFIG.PCW_ENET0_PERIPHERAL_DIVISOR0 {8} \ - CONFIG.PCW_ENET0_PERIPHERAL_DIVISOR1 {1} \ - CONFIG.PCW_ENET0_PERIPHERAL_ENABLE {1} \ - CONFIG.PCW_ENET0_PERIPHERAL_FREQMHZ {1000 Mbps} \ - CONFIG.PCW_ENET0_RESET_ENABLE {1} \ - CONFIG.PCW_ENET0_RESET_IO {MIO 7} \ - CONFIG.PCW_ENET1_PERIPHERAL_DIVISOR0 {1} \ - CONFIG.PCW_ENET1_PERIPHERAL_DIVISOR1 {1} \ - CONFIG.PCW_ENET1_RESET_ENABLE {0} \ - CONFIG.PCW_ENET_RESET_ENABLE {1} \ - CONFIG.PCW_ENET_RESET_SELECT {Share reset pin} \ - CONFIG.PCW_EN_EMIO_ENET0 {0} \ - CONFIG.PCW_EN_EMIO_SDIO1 {0} \ - CONFIG.PCW_EN_EMIO_TTC0 {1} \ - CONFIG.PCW_EN_EMIO_UART0 {0} \ - CONFIG.PCW_EN_ENET0 {1} \ - CONFIG.PCW_EN_GPIO {1} \ - CONFIG.PCW_EN_QSPI {1} \ - CONFIG.PCW_EN_SDIO0 {1} \ - CONFIG.PCW_EN_SDIO1 {1} \ - CONFIG.PCW_EN_TTC0 {1} \ - CONFIG.PCW_EN_UART0 {1} \ - CONFIG.PCW_EN_USB0 {1} \ - CONFIG.PCW_FCLK0_PERIPHERAL_DIVISOR0 {5} \ - CONFIG.PCW_FCLK0_PERIPHERAL_DIVISOR1 {1} \ - CONFIG.PCW_FCLK1_PERIPHERAL_DIVISOR0 {1} \ - CONFIG.PCW_FCLK1_PERIPHERAL_DIVISOR1 {1} \ - CONFIG.PCW_FCLK2_PERIPHERAL_DIVISOR0 {1} \ - CONFIG.PCW_FCLK2_PERIPHERAL_DIVISOR1 {1} \ - CONFIG.PCW_FCLK3_PERIPHERAL_DIVISOR0 {1} \ - CONFIG.PCW_FCLK3_PERIPHERAL_DIVISOR1 {1} \ - CONFIG.PCW_FPGA0_PERIPHERAL_FREQMHZ {200} \ - CONFIG.PCW_FPGA_FCLK0_ENABLE {1} \ - CONFIG.PCW_FPGA_FCLK1_ENABLE {0} \ - CONFIG.PCW_FPGA_FCLK2_ENABLE {0} \ - CONFIG.PCW_FPGA_FCLK3_ENABLE {0} \ - CONFIG.PCW_GPIO_MIO_GPIO_ENABLE {1} \ - CONFIG.PCW_GPIO_MIO_GPIO_IO {MIO} \ - CONFIG.PCW_I2C0_RESET_ENABLE {0} \ - CONFIG.PCW_I2C1_RESET_ENABLE {0} \ - CONFIG.PCW_I2C_PERIPHERAL_FREQMHZ {25} \ - CONFIG.PCW_I2C_RESET_ENABLE {1} \ - CONFIG.PCW_IOPLL_CTRL_FBDIV {30} \ - CONFIG.PCW_IO_IO_PLL_FREQMHZ {1000.000} \ - CONFIG.PCW_MIO_0_DIRECTION {inout} \ - CONFIG.PCW_MIO_0_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_0_PULLUP {enabled} \ - CONFIG.PCW_MIO_0_SLEW {slow} \ - CONFIG.PCW_MIO_10_DIRECTION {inout} \ - CONFIG.PCW_MIO_10_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_10_PULLUP {enabled} \ - CONFIG.PCW_MIO_10_SLEW {slow} \ - CONFIG.PCW_MIO_11_DIRECTION {inout} \ - CONFIG.PCW_MIO_11_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_11_PULLUP {enabled} \ - CONFIG.PCW_MIO_11_SLEW {slow} \ - CONFIG.PCW_MIO_12_DIRECTION {inout} \ - CONFIG.PCW_MIO_12_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_12_PULLUP {enabled} \ - CONFIG.PCW_MIO_12_SLEW {slow} \ - CONFIG.PCW_MIO_13_DIRECTION {inout} \ - CONFIG.PCW_MIO_13_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_13_PULLUP {enabled} \ - CONFIG.PCW_MIO_13_SLEW {slow} \ - CONFIG.PCW_MIO_14_DIRECTION {in} \ - CONFIG.PCW_MIO_14_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_14_PULLUP {enabled} \ - CONFIG.PCW_MIO_14_SLEW {slow} \ - CONFIG.PCW_MIO_15_DIRECTION {out} \ - CONFIG.PCW_MIO_15_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_15_PULLUP {enabled} \ - CONFIG.PCW_MIO_15_SLEW {slow} \ - CONFIG.PCW_MIO_16_DIRECTION {out} \ - CONFIG.PCW_MIO_16_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_16_PULLUP {enabled} \ - CONFIG.PCW_MIO_16_SLEW {fast} \ - CONFIG.PCW_MIO_17_DIRECTION {out} \ - CONFIG.PCW_MIO_17_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_17_PULLUP {enabled} \ - CONFIG.PCW_MIO_17_SLEW {fast} \ - CONFIG.PCW_MIO_18_DIRECTION {out} \ - CONFIG.PCW_MIO_18_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_18_PULLUP {enabled} \ - CONFIG.PCW_MIO_18_SLEW {fast} \ - CONFIG.PCW_MIO_19_DIRECTION {out} \ - CONFIG.PCW_MIO_19_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_19_PULLUP {enabled} \ - CONFIG.PCW_MIO_19_SLEW {fast} \ - CONFIG.PCW_MIO_1_DIRECTION {out} \ - CONFIG.PCW_MIO_1_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_1_PULLUP {enabled} \ - CONFIG.PCW_MIO_1_SLEW {fast} \ - CONFIG.PCW_MIO_20_DIRECTION {out} \ - CONFIG.PCW_MIO_20_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_20_PULLUP {enabled} \ - CONFIG.PCW_MIO_20_SLEW {fast} \ - CONFIG.PCW_MIO_21_DIRECTION {out} \ - CONFIG.PCW_MIO_21_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_21_PULLUP {enabled} \ - CONFIG.PCW_MIO_21_SLEW {fast} \ - CONFIG.PCW_MIO_22_DIRECTION {in} \ - CONFIG.PCW_MIO_22_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_22_PULLUP {enabled} \ - CONFIG.PCW_MIO_22_SLEW {fast} \ - CONFIG.PCW_MIO_23_DIRECTION {in} \ - CONFIG.PCW_MIO_23_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_23_PULLUP {enabled} \ - CONFIG.PCW_MIO_23_SLEW {fast} \ - CONFIG.PCW_MIO_24_DIRECTION {in} \ - CONFIG.PCW_MIO_24_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_24_PULLUP {enabled} \ - CONFIG.PCW_MIO_24_SLEW {fast} \ - CONFIG.PCW_MIO_25_DIRECTION {in} \ - CONFIG.PCW_MIO_25_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_25_PULLUP {enabled} \ - CONFIG.PCW_MIO_25_SLEW {fast} \ - CONFIG.PCW_MIO_26_DIRECTION {in} \ - CONFIG.PCW_MIO_26_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_26_PULLUP {enabled} \ - CONFIG.PCW_MIO_26_SLEW {fast} \ - CONFIG.PCW_MIO_27_DIRECTION {in} \ - CONFIG.PCW_MIO_27_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_27_PULLUP {enabled} \ - CONFIG.PCW_MIO_27_SLEW {fast} \ - CONFIG.PCW_MIO_28_DIRECTION {inout} \ - CONFIG.PCW_MIO_28_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_28_PULLUP {enabled} \ - CONFIG.PCW_MIO_28_SLEW {slow} \ - CONFIG.PCW_MIO_29_DIRECTION {in} \ - CONFIG.PCW_MIO_29_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_29_PULLUP {enabled} \ - CONFIG.PCW_MIO_29_SLEW {slow} \ - CONFIG.PCW_MIO_2_DIRECTION {inout} \ - CONFIG.PCW_MIO_2_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_2_PULLUP {disabled} \ - CONFIG.PCW_MIO_2_SLEW {fast} \ - CONFIG.PCW_MIO_30_DIRECTION {out} \ - CONFIG.PCW_MIO_30_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_30_PULLUP {enabled} \ - CONFIG.PCW_MIO_30_SLEW {slow} \ - CONFIG.PCW_MIO_31_DIRECTION {in} \ - CONFIG.PCW_MIO_31_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_31_PULLUP {enabled} \ - CONFIG.PCW_MIO_31_SLEW {slow} \ - CONFIG.PCW_MIO_32_DIRECTION {inout} \ - CONFIG.PCW_MIO_32_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_32_PULLUP {enabled} \ - CONFIG.PCW_MIO_32_SLEW {slow} \ - CONFIG.PCW_MIO_33_DIRECTION {inout} \ - CONFIG.PCW_MIO_33_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_33_PULLUP {enabled} \ - CONFIG.PCW_MIO_33_SLEW {slow} \ - CONFIG.PCW_MIO_34_DIRECTION {inout} \ - CONFIG.PCW_MIO_34_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_34_PULLUP {enabled} \ - CONFIG.PCW_MIO_34_SLEW {slow} \ - CONFIG.PCW_MIO_35_DIRECTION {inout} \ - CONFIG.PCW_MIO_35_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_35_PULLUP {enabled} \ - CONFIG.PCW_MIO_35_SLEW {slow} \ - CONFIG.PCW_MIO_36_DIRECTION {in} \ - CONFIG.PCW_MIO_36_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_36_PULLUP {enabled} \ - CONFIG.PCW_MIO_36_SLEW {slow} \ - CONFIG.PCW_MIO_37_DIRECTION {inout} \ - CONFIG.PCW_MIO_37_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_37_PULLUP {enabled} \ - CONFIG.PCW_MIO_37_SLEW {slow} \ - CONFIG.PCW_MIO_38_DIRECTION {inout} \ - CONFIG.PCW_MIO_38_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_38_PULLUP {enabled} \ - CONFIG.PCW_MIO_38_SLEW {slow} \ - CONFIG.PCW_MIO_39_DIRECTION {inout} \ - CONFIG.PCW_MIO_39_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_39_PULLUP {enabled} \ - CONFIG.PCW_MIO_39_SLEW {slow} \ - CONFIG.PCW_MIO_3_DIRECTION {inout} \ - CONFIG.PCW_MIO_3_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_3_PULLUP {disabled} \ - CONFIG.PCW_MIO_3_SLEW {fast} \ - CONFIG.PCW_MIO_40_DIRECTION {inout} \ - CONFIG.PCW_MIO_40_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_40_PULLUP {enabled} \ - CONFIG.PCW_MIO_40_SLEW {slow} \ - CONFIG.PCW_MIO_41_DIRECTION {inout} \ - CONFIG.PCW_MIO_41_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_41_PULLUP {enabled} \ - CONFIG.PCW_MIO_41_SLEW {slow} \ - CONFIG.PCW_MIO_42_DIRECTION {inout} \ - CONFIG.PCW_MIO_42_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_42_PULLUP {enabled} \ - CONFIG.PCW_MIO_42_SLEW {slow} \ - CONFIG.PCW_MIO_43_DIRECTION {inout} \ - CONFIG.PCW_MIO_43_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_43_PULLUP {enabled} \ - CONFIG.PCW_MIO_43_SLEW {slow} \ - CONFIG.PCW_MIO_44_DIRECTION {inout} \ - CONFIG.PCW_MIO_44_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_44_PULLUP {enabled} \ - CONFIG.PCW_MIO_44_SLEW {slow} \ - CONFIG.PCW_MIO_45_DIRECTION {inout} \ - CONFIG.PCW_MIO_45_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_45_PULLUP {enabled} \ - CONFIG.PCW_MIO_45_SLEW {slow} \ - CONFIG.PCW_MIO_46_DIRECTION {inout} \ - CONFIG.PCW_MIO_46_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_46_PULLUP {enabled} \ - CONFIG.PCW_MIO_46_SLEW {slow} \ - CONFIG.PCW_MIO_47_DIRECTION {inout} \ - CONFIG.PCW_MIO_47_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_47_PULLUP {enabled} \ - CONFIG.PCW_MIO_47_SLEW {slow} \ - CONFIG.PCW_MIO_48_DIRECTION {inout} \ - CONFIG.PCW_MIO_48_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_48_PULLUP {enabled} \ - CONFIG.PCW_MIO_48_SLEW {slow} \ - CONFIG.PCW_MIO_49_DIRECTION {inout} \ - CONFIG.PCW_MIO_49_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_49_PULLUP {enabled} \ - CONFIG.PCW_MIO_49_SLEW {slow} \ - CONFIG.PCW_MIO_4_DIRECTION {inout} \ - CONFIG.PCW_MIO_4_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_4_PULLUP {disabled} \ - CONFIG.PCW_MIO_4_SLEW {fast} \ - CONFIG.PCW_MIO_50_DIRECTION {inout} \ - CONFIG.PCW_MIO_50_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_50_PULLUP {enabled} \ - CONFIG.PCW_MIO_50_SLEW {slow} \ - CONFIG.PCW_MIO_51_DIRECTION {inout} \ - CONFIG.PCW_MIO_51_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_51_PULLUP {enabled} \ - CONFIG.PCW_MIO_51_SLEW {slow} \ - CONFIG.PCW_MIO_52_DIRECTION {out} \ - CONFIG.PCW_MIO_52_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_52_PULLUP {enabled} \ - CONFIG.PCW_MIO_52_SLEW {slow} \ - CONFIG.PCW_MIO_53_DIRECTION {inout} \ - CONFIG.PCW_MIO_53_IOTYPE {LVCMOS 1.8V} \ - CONFIG.PCW_MIO_53_PULLUP {enabled} \ - CONFIG.PCW_MIO_53_SLEW {slow} \ - CONFIG.PCW_MIO_5_DIRECTION {inout} \ - CONFIG.PCW_MIO_5_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_5_PULLUP {disabled} \ - CONFIG.PCW_MIO_5_SLEW {fast} \ - CONFIG.PCW_MIO_6_DIRECTION {out} \ - CONFIG.PCW_MIO_6_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_6_PULLUP {disabled} \ - CONFIG.PCW_MIO_6_SLEW {fast} \ - CONFIG.PCW_MIO_7_DIRECTION {out} \ - CONFIG.PCW_MIO_7_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_7_PULLUP {disabled} \ - CONFIG.PCW_MIO_7_SLEW {slow} \ - CONFIG.PCW_MIO_8_DIRECTION {out} \ - CONFIG.PCW_MIO_8_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_8_PULLUP {disabled} \ - CONFIG.PCW_MIO_8_SLEW {slow} \ - CONFIG.PCW_MIO_9_DIRECTION {inout} \ - CONFIG.PCW_MIO_9_IOTYPE {LVCMOS 3.3V} \ - CONFIG.PCW_MIO_9_PULLUP {enabled} \ - CONFIG.PCW_MIO_9_SLEW {slow} \ - CONFIG.PCW_MIO_TREE_PERIPHERALS {\ -GPIO#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI Flash#Quad SPI\ -Flash#Quad SPI Flash#ENET Reset#USB Reset#GPIO#GPIO#GPIO#GPIO#GPIO#UART 0#UART\ -0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet 0#Enet\ -0#Enet 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB 0#USB\ -0#SD 0#SD 0#SD 0#SD 0#SD 0#SD 0#SD 1#SD 1#SD 1#SD 1#SD 1#SD 1#Enet 0#Enet 0} \ - CONFIG.PCW_MIO_TREE_SIGNALS {\ -gpio[0]#qspi0_ss_b#qspi0_io[0]#qspi0_io[1]#qspi0_io[2]#qspi0_io[3]/HOLD_B#qspi0_sclk#reset#reset#gpio[9]#gpio[10]#gpio[11]#gpio[12]#gpio[13]#rx#tx#tx_clk#txd[0]#txd[1]#txd[2]#txd[3]#tx_ctl#rx_clk#rxd[0]#rxd[1]#rxd[2]#rxd[3]#rx_ctl#data[4]#dir#stp#nxt#data[0]#data[1]#data[2]#data[3]#clk#data[5]#data[6]#data[7]#clk#cmd#data[0]#data[1]#data[2]#data[3]#data[0]#cmd#clk#data[1]#data[2]#data[3]#mdc#mdio} \ - CONFIG.PCW_NAND_GRP_D8_ENABLE {0} \ - CONFIG.PCW_NAND_PERIPHERAL_ENABLE {0} \ - CONFIG.PCW_NOR_GRP_A25_ENABLE {0} \ - CONFIG.PCW_NOR_GRP_CS0_ENABLE {0} \ - CONFIG.PCW_NOR_GRP_CS1_ENABLE {0} \ - CONFIG.PCW_NOR_GRP_SRAM_CS0_ENABLE {0} \ - CONFIG.PCW_NOR_GRP_SRAM_CS1_ENABLE {0} \ - CONFIG.PCW_NOR_GRP_SRAM_INT_ENABLE {0} \ - CONFIG.PCW_NOR_PERIPHERAL_ENABLE {0} \ - CONFIG.PCW_PCAP_PERIPHERAL_DIVISOR0 {5} \ - CONFIG.PCW_PRESET_BANK1_VOLTAGE {LVCMOS 1.8V} \ - CONFIG.PCW_QSPI_GRP_FBCLK_ENABLE {0} \ - CONFIG.PCW_QSPI_GRP_IO1_ENABLE {0} \ - CONFIG.PCW_QSPI_GRP_SINGLE_SS_ENABLE {1} \ - CONFIG.PCW_QSPI_GRP_SINGLE_SS_IO {MIO 1 .. 6} \ - CONFIG.PCW_QSPI_GRP_SS1_ENABLE {0} \ - CONFIG.PCW_QSPI_PERIPHERAL_DIVISOR0 {5} \ - CONFIG.PCW_QSPI_PERIPHERAL_ENABLE {1} \ - CONFIG.PCW_QSPI_PERIPHERAL_FREQMHZ {200} \ - CONFIG.PCW_QSPI_QSPI_IO {MIO 1 .. 6} \ - CONFIG.PCW_SD0_GRP_CD_ENABLE {0} \ - CONFIG.PCW_SD0_GRP_POW_ENABLE {0} \ - CONFIG.PCW_SD0_GRP_WP_ENABLE {0} \ - CONFIG.PCW_SD0_PERIPHERAL_ENABLE {1} \ - CONFIG.PCW_SD0_SD0_IO {MIO 40 .. 45} \ - CONFIG.PCW_SD1_GRP_CD_ENABLE {0} \ - CONFIG.PCW_SD1_GRP_POW_ENABLE {0} \ - CONFIG.PCW_SD1_GRP_WP_ENABLE {0} \ - CONFIG.PCW_SD1_PERIPHERAL_ENABLE {1} \ - CONFIG.PCW_SD1_SD1_IO {MIO 46 .. 51} \ - CONFIG.PCW_SDIO_PERIPHERAL_DIVISOR0 {10} \ - CONFIG.PCW_SDIO_PERIPHERAL_FREQMHZ {100} \ - CONFIG.PCW_SDIO_PERIPHERAL_VALID {1} \ - CONFIG.PCW_SINGLE_QSPI_DATA_MODE {x4} \ - CONFIG.PCW_SMC_PERIPHERAL_DIVISOR0 {1} \ - CONFIG.PCW_SPI_PERIPHERAL_DIVISOR0 {1} \ - CONFIG.PCW_TPIU_PERIPHERAL_DIVISOR0 {1} \ - CONFIG.PCW_TTC0_CLK0_PERIPHERAL_FREQMHZ {133.333333} \ - CONFIG.PCW_TTC0_CLK1_PERIPHERAL_FREQMHZ {133.333333} \ - CONFIG.PCW_TTC0_CLK2_PERIPHERAL_FREQMHZ {133.333333} \ - CONFIG.PCW_TTC0_PERIPHERAL_ENABLE {1} \ - CONFIG.PCW_TTC0_TTC0_IO {EMIO} \ - CONFIG.PCW_TTC_PERIPHERAL_FREQMHZ {50} \ - CONFIG.PCW_UART0_GRP_FULL_ENABLE {0} \ - CONFIG.PCW_UART0_PERIPHERAL_ENABLE {1} \ - CONFIG.PCW_UART0_UART0_IO {MIO 14 .. 15} \ - CONFIG.PCW_UART_PERIPHERAL_DIVISOR0 {10} \ - CONFIG.PCW_UART_PERIPHERAL_FREQMHZ {100} \ - CONFIG.PCW_UART_PERIPHERAL_VALID {1} \ - CONFIG.PCW_UIPARAM_ACT_DDR_FREQ_MHZ {533.333374} \ - CONFIG.PCW_UIPARAM_DDR_BANK_ADDR_COUNT {3} \ - CONFIG.PCW_UIPARAM_DDR_CL {7} \ - CONFIG.PCW_UIPARAM_DDR_COL_ADDR_COUNT {10} \ - CONFIG.PCW_UIPARAM_DDR_CWL {6} \ - CONFIG.PCW_UIPARAM_DDR_DEVICE_CAPACITY {2048 MBits} \ - CONFIG.PCW_UIPARAM_DDR_DRAM_WIDTH {16 Bits} \ - CONFIG.PCW_UIPARAM_DDR_PARTNO {MT41J128M16 HA-125} \ - CONFIG.PCW_UIPARAM_DDR_ROW_ADDR_COUNT {14} \ - CONFIG.PCW_UIPARAM_DDR_SPEED_BIN {DDR3_1066F} \ - CONFIG.PCW_UIPARAM_DDR_T_FAW {40.0} \ - CONFIG.PCW_UIPARAM_DDR_T_RAS_MIN {35.0} \ - CONFIG.PCW_UIPARAM_DDR_T_RC {48.75} \ - CONFIG.PCW_UIPARAM_DDR_T_RCD {7} \ - CONFIG.PCW_UIPARAM_DDR_T_RP {7} \ - CONFIG.PCW_USB0_PERIPHERAL_ENABLE {1} \ - CONFIG.PCW_USB0_PERIPHERAL_FREQMHZ {60} \ - CONFIG.PCW_USB0_RESET_ENABLE {1} \ - CONFIG.PCW_USB0_RESET_IO {MIO 8} \ - CONFIG.PCW_USB0_USB0_IO {MIO 28 .. 39} \ - CONFIG.PCW_USB1_RESET_ENABLE {0} \ - CONFIG.PCW_USB_RESET_ENABLE {1} \ - CONFIG.PCW_USB_RESET_SELECT {Share reset pin} \ - ] $processing_system7_0 - - # Create instance: ps7_0_axi_periph, and set properties - set ps7_0_axi_periph [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect:2.1 ps7_0_axi_periph ] - set_property -dict [ list \ - CONFIG.NUM_MI {2} \ - ] $ps7_0_axi_periph - - # Create instance: rst_ps7_0_200M, and set properties - set rst_ps7_0_200M [ create_bd_cell -type ip -vlnv xilinx.com:ip:proc_sys_reset:5.0 rst_ps7_0_200M ] - - # Create interface connections - connect_bd_intf_net -intf_net processing_system7_0_DDR [get_bd_intf_ports DDR] [get_bd_intf_pins processing_system7_0/DDR] - connect_bd_intf_net -intf_net processing_system7_0_FIXED_IO [get_bd_intf_ports FIXED_IO] [get_bd_intf_pins processing_system7_0/FIXED_IO] - connect_bd_intf_net -intf_net processing_system7_0_M_AXI_GP0 [get_bd_intf_pins processing_system7_0/M_AXI_GP0] [get_bd_intf_pins ps7_0_axi_periph/S00_AXI] - connect_bd_intf_net -intf_net ps7_0_axi_periph_M00_AXI [get_bd_intf_pins ip_encoder_0/S00_AXI] [get_bd_intf_pins ps7_0_axi_periph/M00_AXI] - connect_bd_intf_net -intf_net ps7_0_axi_periph_M01_AXI [get_bd_intf_pins ip_fan_0/S00_AXI] [get_bd_intf_pins ps7_0_axi_periph/M01_AXI] - - # Create port connections - connect_bd_net -net exrst_n_0_1 [get_bd_ports exrst_n] [get_bd_pins ip_encoder_0/exrst_n] - connect_bd_net -net in_signal_0_1 [get_bd_ports encoder_signal] [get_bd_pins ip_encoder_0/in_signal] - connect_bd_net -net ip_encoder_0_out_signal_camera_a [get_bd_ports out_signal_camera_a] [get_bd_pins ip_encoder_0/out_signal_camera_a] - connect_bd_net -net ip_encoder_0_out_signal_camera_b [get_bd_ports out_signal_camera_b] [get_bd_pins ip_encoder_0/out_signal_camera_b] - connect_bd_net -net ip_encoder_0_out_signal_camera_c [get_bd_ports out_signal_camera_c] [get_bd_pins ip_encoder_0/out_signal_camera_c] - connect_bd_net -net ip_encoder_0_out_signal_camera_d [get_bd_ports out_signal_camera_d] [get_bd_pins ip_encoder_0/out_signal_camera_d] - connect_bd_net -net ip_fan_0_fan [get_bd_ports fan] [get_bd_pins ip_fan_0/fan] - connect_bd_net -net processing_system7_0_FCLK_CLK0 [get_bd_pins ip_encoder_0/s00_axi_aclk] [get_bd_pins ip_fan_0/s00_axi_aclk] [get_bd_pins processing_system7_0/FCLK_CLK0] [get_bd_pins processing_system7_0/M_AXI_GP0_ACLK] [get_bd_pins ps7_0_axi_periph/ACLK] [get_bd_pins ps7_0_axi_periph/M00_ACLK] [get_bd_pins ps7_0_axi_periph/M01_ACLK] [get_bd_pins ps7_0_axi_periph/S00_ACLK] [get_bd_pins rst_ps7_0_200M/slowest_sync_clk] - connect_bd_net -net processing_system7_0_FCLK_RESET0_N [get_bd_pins processing_system7_0/FCLK_RESET0_N] [get_bd_pins rst_ps7_0_200M/ext_reset_in] - connect_bd_net -net rst_ps7_0_200M_peripheral_aresetn [get_bd_pins ip_encoder_0/s00_axi_aresetn] [get_bd_pins ip_fan_0/s00_axi_aresetn] [get_bd_pins ps7_0_axi_periph/ARESETN] [get_bd_pins ps7_0_axi_periph/M00_ARESETN] [get_bd_pins ps7_0_axi_periph/M01_ARESETN] [get_bd_pins ps7_0_axi_periph/S00_ARESETN] [get_bd_pins rst_ps7_0_200M/peripheral_aresetn] - - # Create address segments - assign_bd_address -offset 0x43C10000 -range 0x00010000 -target_address_space [get_bd_addr_spaces processing_system7_0/Data] [get_bd_addr_segs ip_encoder_0/S00_AXI/S00_AXI_reg] -force - assign_bd_address -offset 0x43C20000 -range 0x00010000 -target_address_space [get_bd_addr_spaces processing_system7_0/Data] [get_bd_addr_segs ip_fan_0/S00_AXI/S00_AXI_reg] -force - - - # Restore current instance - current_bd_instance $oldCurInst - - validate_bd_design - save_bd_design -} -# End of create_root_design() - - -################################################################## -# MAIN FLOW -################################################################## - -create_root_design "" - - diff --git a/hardware/pl_platform/cstr/lower_machine.xdc b/hardware/pl_platform/cstr/lower_machine.xdc deleted file mode 100644 index fcbfbd2..0000000 --- a/hardware/pl_platform/cstr/lower_machine.xdc +++ /dev/null @@ -1,30 +0,0 @@ - -set_property PACKAGE_PIN R14 [get_ports encoder_signal] -set_property IOSTANDARD LVCMOS33 [get_ports encoder_signal] - - -set_property PACKAGE_PIN J20 [get_ports fan] -set_property IOSTANDARD LVCMOS33 [get_ports fan] -set_property SLEW SLOW [get_ports fan] - - -set_property PACKAGE_PIN T10 [get_ports out_signal_camera_a] -set_property IOSTANDARD LVCMOS33 [get_ports out_signal_camera_a] -set_property SLEW FAST [get_ports out_signal_camera_a] -set_property IOSTANDARD LVCMOS33 [get_ports out_signal_camera_b] -set_property IOSTANDARD LVCMOS33 [get_ports out_signal_camera_c] -set_property IOSTANDARD LVCMOS33 [get_ports out_signal_camera_d] -set_property PACKAGE_PIN U12 [get_ports out_signal_camera_b] -set_property PACKAGE_PIN V12 [get_ports out_signal_camera_c] -set_property PACKAGE_PIN W13 [get_ports out_signal_camera_d] -set_property SLEW FAST [get_ports out_signal_camera_b] -set_property SLEW FAST [get_ports out_signal_camera_c] -set_property SLEW FAST [get_ports out_signal_camera_d] - -set_property OFFCHIP_TERM NONE [get_ports fan] -set_property OFFCHIP_TERM NONE [get_ports out_signal_camera_a] -set_property OFFCHIP_TERM NONE [get_ports out_signal_camera_b] -set_property OFFCHIP_TERM NONE [get_ports out_signal_camera_c] -set_property OFFCHIP_TERM NONE [get_ports out_signal_camera_d] -set_property IOSTANDARD LVCMOS33 [get_ports exrst_n] -set_property PACKAGE_PIN T12 [get_ports exrst_n] diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/.Xil/.ip_encoder_0.xcix.lock b/hardware/pl_platform/ip_repo/ip_encoder_1.0/.Xil/.ip_encoder_0.xcix.lock deleted file mode 100644 index e69de29..0000000 diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/bd/bd.tcl b/hardware/pl_platform/ip_repo/ip_encoder_1.0/bd/bd.tcl deleted file mode 100644 index 4804aeb..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/bd/bd.tcl +++ /dev/null @@ -1,86 +0,0 @@ - -proc init { cellpath otherInfo } { - - set cell_handle [get_bd_cells $cellpath] - set all_busif [get_bd_intf_pins $cellpath/*] - set axi_standard_param_list [list ID_WIDTH AWUSER_WIDTH ARUSER_WIDTH WUSER_WIDTH RUSER_WIDTH BUSER_WIDTH] - set full_sbusif_list [list ] - - foreach busif $all_busif { - if { [string equal -nocase [get_property MODE $busif] "slave"] == 1 } { - set busif_param_list [list] - set busif_name [get_property NAME $busif] - if { [lsearch -exact -nocase $full_sbusif_list $busif_name ] == -1 } { - continue - } - foreach tparam $axi_standard_param_list { - lappend busif_param_list "C_${busif_name}_${tparam}" - } - bd::mark_propagate_only $cell_handle $busif_param_list - } - } -} - - -proc pre_propagate {cellpath otherInfo } { - - set cell_handle [get_bd_cells $cellpath] - set all_busif [get_bd_intf_pins $cellpath/*] - set axi_standard_param_list [list ID_WIDTH AWUSER_WIDTH ARUSER_WIDTH WUSER_WIDTH RUSER_WIDTH BUSER_WIDTH] - - foreach busif $all_busif { - if { [string equal -nocase [get_property CONFIG.PROTOCOL $busif] "AXI4"] != 1 } { - continue - } - if { [string equal -nocase [get_property MODE $busif] "master"] != 1 } { - continue - } - - set busif_name [get_property NAME $busif] - foreach tparam $axi_standard_param_list { - set busif_param_name "C_${busif_name}_${tparam}" - - set val_on_cell_intf_pin [get_property CONFIG.${tparam} $busif] - set val_on_cell [get_property CONFIG.${busif_param_name} $cell_handle] - - if { [string equal -nocase $val_on_cell_intf_pin $val_on_cell] != 1 } { - if { $val_on_cell != "" } { - set_property CONFIG.${tparam} $val_on_cell $busif - } - } - } - } -} - - -proc propagate {cellpath otherInfo } { - - set cell_handle [get_bd_cells $cellpath] - set all_busif [get_bd_intf_pins $cellpath/*] - set axi_standard_param_list [list ID_WIDTH AWUSER_WIDTH ARUSER_WIDTH WUSER_WIDTH RUSER_WIDTH BUSER_WIDTH] - - foreach busif $all_busif { - if { [string equal -nocase [get_property CONFIG.PROTOCOL $busif] "AXI4"] != 1 } { - continue - } - if { [string equal -nocase [get_property MODE $busif] "slave"] != 1 } { - continue - } - - set busif_name [get_property NAME $busif] - foreach tparam $axi_standard_param_list { - set busif_param_name "C_${busif_name}_${tparam}" - - set val_on_cell_intf_pin [get_property CONFIG.${tparam} $busif] - set val_on_cell [get_property CONFIG.${busif_param_name} $cell_handle] - - if { [string equal -nocase $val_on_cell_intf_pin $val_on_cell] != 1 } { - #override property of bd_interface_net to bd_cell -- only for slaves. May check for supported values.. - if { $val_on_cell_intf_pin != "" } { - set_property CONFIG.${busif_param_name} $val_on_cell_intf_pin $cell_handle - } - } - } - } -} - diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/component.xml b/hardware/pl_platform/ip_repo/ip_encoder_1.0/component.xml deleted file mode 100644 index b733991..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/component.xml +++ /dev/null @@ -1,1105 +0,0 @@ - - - user.org - user - ip_encoder - 1.1 - - - S00_AXI - - - - - - - - - AWADDR - - - s00_axi_awaddr - - - - - AWPROT - - - s00_axi_awprot - - - - - AWVALID - - - s00_axi_awvalid - - - - - AWREADY - - - s00_axi_awready - - - - - WDATA - - - s00_axi_wdata - - - - - WSTRB - - - s00_axi_wstrb - - - - - WVALID - - - s00_axi_wvalid - - - - - WREADY - - - s00_axi_wready - - - - - BRESP - - - s00_axi_bresp - - - - - BVALID - - - s00_axi_bvalid - - - - - BREADY - - - s00_axi_bready - - - - - ARADDR - - - s00_axi_araddr - - - - - ARPROT - - - s00_axi_arprot - - - - - ARVALID - - - s00_axi_arvalid - - - - - ARREADY - - - s00_axi_arready - - - - - RDATA - - - s00_axi_rdata - - - - - RRESP - - - s00_axi_rresp - - - - - RVALID - - - s00_axi_rvalid - - - - - RREADY - - - s00_axi_rready - - - - - - WIZ_DATA_WIDTH - 32 - - - WIZ_NUM_REG - 4 - - - SUPPORTS_NARROW_BURST - 0 - - - - - S00_AXI_RST - - - - - - - RST - - - s00_axi_aresetn - - - - - - POLARITY - ACTIVE_LOW - - - - - S00_AXI_CLK - - - - - - - CLK - - - s00_axi_aclk - - - - - - ASSOCIATED_BUSIF - S00_AXI - - - ASSOCIATED_RESET - s00_axi_aresetn - - - - - - - S00_AXI - - S00_AXI_reg - 0 - 4096 - 32 - register - - - OFFSET_BASE_PARAM - C_S00_AXI_BASEADDR - - - OFFSET_HIGH_PARAM - C_S00_AXI_HIGHADDR - - - - - - - - - xilinx_verilogsynthesis - Verilog Synthesis - verilogSource:vivado.xilinx.com:synthesis - verilog - ip_encoder_v1_0 - - xilinx_verilogsynthesis_view_fileset - - - - viewChecksum - 01ec01e9 - - - - - xilinx_verilogbehavioralsimulation - Verilog Simulation - verilogSource:vivado.xilinx.com:simulation - verilog - ip_encoder_v1_0 - - xilinx_verilogbehavioralsimulation_view_fileset - - - - viewChecksum - 01ec01e9 - - - - - xilinx_softwaredriver - Software Driver - :vivado.xilinx.com:sw.driver - - xilinx_softwaredriver_view_fileset - - - - viewChecksum - 5ea3f00b - - - - - xilinx_xpgui - UI Layout - :vivado.xilinx.com:xgui.ui - - xilinx_xpgui_view_fileset - - - - viewChecksum - cb63bd89 - - - - - bd_tcl - Block Diagram - :vivado.xilinx.com:block.diagram - - bd_tcl_view_fileset - - - - viewChecksum - 45a2f450 - - - - - - - in_signal - - in - - - std_logic - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - exrst_n - - in - - - std_logic - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - out_signal_valve_posedge - - out - - - std_logic - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - out_signal_valve - - out - - - std_logic - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - out_signal_camera_a_posedge - - out - - - std_logic - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - out_signal_camera_b_posedge - - out - - - std_logic - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - out_signal_camera_c_posedge - - out - - - std_logic - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - out_signal_camera_d_posedge - - out - - - std_logic - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - out_signal_camera_a - - out - - - std_logic - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - out_signal_camera_b - - out - - - std_logic - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - out_signal_camera_c - - out - - - std_logic - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - out_signal_camera_d - - out - - - std_logic - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_aclk - - in - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_aresetn - - in - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_awaddr - - in - - 4 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_awprot - - in - - 2 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_awvalid - - in - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_awready - - out - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_wdata - - in - - 31 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_wstrb - - in - - 3 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_wvalid - - in - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_wready - - out - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_bresp - - out - - 1 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_bvalid - - out - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_bready - - in - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_araddr - - in - - 4 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_arprot - - in - - 2 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_arvalid - - in - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_arready - - out - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_rdata - - out - - 31 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_rresp - - out - - 1 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_rvalid - - out - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_rready - - in - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - - - C_S00_AXI_DATA_WIDTH - C S00 AXI DATA WIDTH - Width of S_AXI data bus - 32 - - - C_S00_AXI_ADDR_WIDTH - C S00 AXI ADDR WIDTH - Width of S_AXI address bus - 5 - - - - - - choice_list_6fc15197 - 32 - - - choice_list_9d8b0d81 - ACTIVE_HIGH - ACTIVE_LOW - - - choice_pairs_ce1226b1 - 1 - 0 - - - - - xilinx_verilogsynthesis_view_fileset - - src/encoder.v - verilogSource - - - hdl/ip_encoder_v1_0_S00_AXI.v - verilogSource - - - hdl/ip_encoder_v1_0.v - verilogSource - CHECKSUM_33abba7b - - - - xilinx_verilogbehavioralsimulation_view_fileset - - src/encoder.v - verilogSource - - - hdl/ip_encoder_v1_0_S00_AXI.v - verilogSource - - - hdl/ip_encoder_v1_0.v - verilogSource - - - - xilinx_softwaredriver_view_fileset - - drivers/ip_encoder_v1_0/data/ip_encoder.mdd - mdd - driver_mdd - - - drivers/ip_encoder_v1_0/data/ip_encoder.tcl - tclSource - driver_tcl - - - drivers/ip_encoder_v1_0/src/Makefile - driver_src - - - drivers/ip_encoder_v1_0/src/ip_encoder.h - cSource - driver_src - - - drivers/ip_encoder_v1_0/src/ip_encoder.c - cSource - driver_src - - - drivers/ip_encoder_v1_0/src/ip_encoder_selftest.c - cSource - driver_src - - - - xilinx_xpgui_view_fileset - - xgui/ip_encoder_v1_1.tcl - tclSource - CHECKSUM_cb63bd89 - XGUI_VERSION_2 - - - - bd_tcl_view_fileset - - bd/bd.tcl - tclSource - - - - ip_encoder - - - C_S00_AXI_DATA_WIDTH - C S00 AXI DATA WIDTH - Width of S_AXI data bus - 32 - - - - false - - - - - - C_S00_AXI_ADDR_WIDTH - C S00 AXI ADDR WIDTH - Width of S_AXI address bus - 5 - - - - false - - - - - - C_S00_AXI_BASEADDR - C S00 AXI BASEADDR - 0xFFFFFFFF - - - - false - - - - - - C_S00_AXI_HIGHADDR - C S00 AXI HIGHADDR - 0x00000000 - - - - false - - - - - - Component_Name - ip_encoder_v1_0 - - - - - - zynq - - - AXI_Peripheral - - ip_encoder_v1.0 - 20 - - user.org:user:ip_encoder:1.0 - - 2023-04-26T08:46:12Z - - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - /home/miaow/zynq/ip_repo/ip_encoder_1.0 - - - - 2022.1 - - - - - - - - - - - - - - diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/data/ip_encoder.mdd b/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/data/ip_encoder.mdd deleted file mode 100644 index ba75dbe..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/data/ip_encoder.mdd +++ /dev/null @@ -1,10 +0,0 @@ - - -OPTION psf_version = 2.1; - -BEGIN DRIVER ip_encoder - OPTION supported_peripherals = (ip_encoder); - OPTION copyfiles = all; - OPTION VERSION = 1.0; - OPTION NAME = ip_encoder; -END DRIVER diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/data/ip_encoder.tcl b/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/data/ip_encoder.tcl deleted file mode 100644 index e4dbbf0..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/data/ip_encoder.tcl +++ /dev/null @@ -1,5 +0,0 @@ - - -proc generate {drv_handle} { - xdefine_include_file $drv_handle "xparameters.h" "ip_encoder" "NUM_INSTANCES" "DEVICE_ID" "C_S00_AXI_BASEADDR" "C_S00_AXI_HIGHADDR" -} diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/src/Makefile b/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/src/Makefile deleted file mode 100644 index 18d6967..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/src/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -COMPILER= -ARCHIVER= -CP=cp -COMPILER_FLAGS= -EXTRA_COMPILER_FLAGS= -LIB=libxil.a - -RELEASEDIR=../../../lib -INCLUDEDIR=../../../include -INCLUDES=-I./. -I${INCLUDEDIR} - -INCLUDEFILES=*.h -LIBSOURCES=*.c -OUTS = *.o - -libs: - echo "Compiling ip_encoder..." - $(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES) - $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OUTS} - make clean - -include: - ${CP} $(INCLUDEFILES) $(INCLUDEDIR) - -clean: - rm -rf ${OUTS} diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/src/ip_encoder.c b/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/src/ip_encoder.c deleted file mode 100644 index d3162a7..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/src/ip_encoder.c +++ /dev/null @@ -1,6 +0,0 @@ - - -/***************************** Include Files *******************************/ -#include "ip_encoder.h" - -/************************** Function Definitions ***************************/ diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/src/ip_encoder.h b/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/src/ip_encoder.h deleted file mode 100644 index 562108a..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/src/ip_encoder.h +++ /dev/null @@ -1,79 +0,0 @@ - -#ifndef IP_ENCODER_H -#define IP_ENCODER_H - - -/****************** Include Files ********************/ -#include "xil_types.h" -#include "xstatus.h" - -#define IP_ENCODER_S00_AXI_SLV_REG0_OFFSET 0 -#define IP_ENCODER_S00_AXI_SLV_REG1_OFFSET 4 -#define IP_ENCODER_S00_AXI_SLV_REG2_OFFSET 8 -#define IP_ENCODER_S00_AXI_SLV_REG3_OFFSET 12 - - -/**************************** Type Definitions *****************************/ -/** - * - * Write a value to a IP_ENCODER register. A 32 bit write is performed. - * If the component is implemented in a smaller width, only the least - * significant data is written. - * - * @param BaseAddress is the base address of the IP_ENCODERdevice. - * @param RegOffset is the register offset from the base to write to. - * @param Data is the data written to the register. - * - * @return None. - * - * @note - * C-style signature: - * void IP_ENCODER_mWriteReg(u32 BaseAddress, unsigned RegOffset, u32 Data) - * - */ -#define IP_ENCODER_mWriteReg(BaseAddress, RegOffset, Data) \ - Xil_Out32((BaseAddress) + (RegOffset), (u32)(Data)) - -/** - * - * Read a value from a IP_ENCODER register. A 32 bit read is performed. - * If the component is implemented in a smaller width, only the least - * significant data is read from the register. The most significant data - * will be read as 0. - * - * @param BaseAddress is the base address of the IP_ENCODER device. - * @param RegOffset is the register offset from the base to write to. - * - * @return Data is the data from the register. - * - * @note - * C-style signature: - * u32 IP_ENCODER_mReadReg(u32 BaseAddress, unsigned RegOffset) - * - */ -#define IP_ENCODER_mReadReg(BaseAddress, RegOffset) \ - Xil_In32((BaseAddress) + (RegOffset)) - -/************************** Function Prototypes ****************************/ -/** - * - * Run a self-test on the driver/device. Note this may be a destructive test if - * resets of the device are performed. - * - * If the hardware system is not built correctly, this function may never - * return to the caller. - * - * @param baseaddr_p is the base address of the IP_ENCODER instance to be worked on. - * - * @return - * - * - XST_SUCCESS if all self-test code passed - * - XST_FAILURE if any self-test code failed - * - * @note Caching must be turned off for this function to work. - * @note Self test may fail if data memory and device are not on the same bus. - * - */ -XStatus IP_ENCODER_Reg_SelfTest(void * baseaddr_p); - -#endif // IP_ENCODER_H diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/src/ip_encoder_selftest.c b/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/src/ip_encoder_selftest.c deleted file mode 100644 index bc1f76c..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/drivers/ip_encoder_v1_0/src/ip_encoder_selftest.c +++ /dev/null @@ -1,60 +0,0 @@ - -/***************************** Include Files *******************************/ -#include "ip_encoder.h" -#include "xparameters.h" -#include "stdio.h" -#include "xil_io.h" - -/************************** Constant Definitions ***************************/ -#define READ_WRITE_MUL_FACTOR 0x10 - -/************************** Function Definitions ***************************/ -/** - * - * Run a self-test on the driver/device. Note this may be a destructive test if - * resets of the device are performed. - * - * If the hardware system is not built correctly, this function may never - * return to the caller. - * - * @param baseaddr_p is the base address of the IP_ENCODERinstance to be worked on. - * - * @return - * - * - XST_SUCCESS if all self-test code passed - * - XST_FAILURE if any self-test code failed - * - * @note Caching must be turned off for this function to work. - * @note Self test may fail if data memory and device are not on the same bus. - * - */ -XStatus IP_ENCODER_Reg_SelfTest(void * baseaddr_p) -{ - u32 baseaddr; - int write_loop_index; - int read_loop_index; - int Index; - - baseaddr = (u32) baseaddr_p; - - xil_printf("******************************\n\r"); - xil_printf("* User Peripheral Self Test\n\r"); - xil_printf("******************************\n\n\r"); - - /* - * Write to user logic slave module register(s) and read back - */ - xil_printf("User logic slave module test...\n\r"); - - for (write_loop_index = 0 ; write_loop_index < 4; write_loop_index++) - IP_ENCODER_mWriteReg (baseaddr, write_loop_index*4, (write_loop_index+1)*READ_WRITE_MUL_FACTOR); - for (read_loop_index = 0 ; read_loop_index < 4; read_loop_index++) - if ( IP_ENCODER_mReadReg (baseaddr, read_loop_index*4) != (read_loop_index+1)*READ_WRITE_MUL_FACTOR){ - xil_printf ("Error reading register value at address %x\n", (int)baseaddr + read_loop_index*4); - return XST_FAILURE; - } - - xil_printf(" - slave register write/read passed\n\n\r"); - - return XST_SUCCESS; -} diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/example_designs/bfm_design/design.tcl b/hardware/pl_platform/ip_repo/ip_encoder_1.0/example_designs/bfm_design/design.tcl deleted file mode 100644 index 65a930e..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/example_designs/bfm_design/design.tcl +++ /dev/null @@ -1,88 +0,0 @@ -proc create_ipi_design { offsetfile design_name } { - create_bd_design $design_name - open_bd_design $design_name - - # Create Clock and Reset Ports - set ACLK [ create_bd_port -dir I -type clk ACLK ] - set_property -dict [ list CONFIG.FREQ_HZ {100000000} CONFIG.PHASE {0.000} CONFIG.CLK_DOMAIN "${design_name}_ACLK" ] $ACLK - set ARESETN [ create_bd_port -dir I -type rst ARESETN ] - set_property -dict [ list CONFIG.POLARITY {ACTIVE_LOW} ] $ARESETN - set_property CONFIG.ASSOCIATED_RESET ARESETN $ACLK - - # Create instance: ip_encoder_0, and set properties - set ip_encoder_0 [ create_bd_cell -type ip -vlnv user.org:user:ip_encoder:1.0 ip_encoder_0] - - # Create instance: master_0, and set properties - set master_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_vip master_0] - set_property -dict [ list CONFIG.PROTOCOL {AXI4LITE} CONFIG.INTERFACE_MODE {MASTER} ] $master_0 - - # Create interface connections - connect_bd_intf_net [get_bd_intf_pins master_0/M_AXI ] [get_bd_intf_pins ip_encoder_0/S00_AXI] - - # Create port connections - connect_bd_net -net aclk_net [get_bd_ports ACLK] [get_bd_pins master_0/ACLK] [get_bd_pins ip_encoder_0/S00_AXI_ACLK] - connect_bd_net -net aresetn_net [get_bd_ports ARESETN] [get_bd_pins master_0/ARESETN] [get_bd_pins ip_encoder_0/S00_AXI_ARESETN] -set_property target_simulator XSim [current_project] -set_property -name {xsim.simulate.runtime} -value {100ms} -objects [get_filesets sim_1] - - # Auto assign address - assign_bd_address - - # Copy all address to interface_address.vh file - set bd_path [file dirname [get_property NAME [get_files ${design_name}.bd]]] - upvar 1 $offsetfile offset_file - set offset_file "${bd_path}/ip_encoder_v1_0_tb_include.svh" - set fp [open $offset_file "w"] - puts $fp "`ifndef ip_encoder_v1_0_tb_include_vh_" - puts $fp "`define ip_encoder_v1_0_tb_include_vh_\n" - puts $fp "//Configuration current bd names" - puts $fp "`define BD_NAME ${design_name}" - puts $fp "`define BD_INST_NAME ${design_name}_i" - puts $fp "`define BD_WRAPPER ${design_name}_wrapper\n" - puts $fp "//Configuration address parameters" - - puts $fp "`endif" - close $fp -} - -set ip_path [file dirname [file normalize [get_property XML_FILE_NAME [ipx::get_cores user.org:user:ip_encoder:1.0]]]] -set test_bench_file ${ip_path}/example_designs/bfm_design/ip_encoder_v1_0_tb.sv -set interface_address_vh_file "" - -# Set IP Repository and Update IP Catalogue -set repo_paths [get_property ip_repo_paths [current_fileset]] -if { [lsearch -exact -nocase $repo_paths $ip_path ] == -1 } { - set_property ip_repo_paths "$ip_path [get_property ip_repo_paths [current_fileset]]" [current_fileset] - update_ip_catalog -} - -set design_name "" -set all_bd {} -set all_bd_files [get_files *.bd -quiet] -foreach file $all_bd_files { -set file_name [string range $file [expr {[string last "/" $file] + 1}] end] -set bd_name [string range $file_name 0 [expr {[string last "." $file_name] -1}]] -lappend all_bd $bd_name -} - -for { set i 1 } { 1 } { incr i } { - set design_name "ip_encoder_v1_0_bfm_${i}" - if { [lsearch -exact -nocase $all_bd $design_name ] == -1 } { - break - } -} - -create_ipi_design interface_address_vh_file ${design_name} -validate_bd_design - -set wrapper_file [make_wrapper -files [get_files ${design_name}.bd] -top -force] -import_files -force -norecurse $wrapper_file - -set_property SOURCE_SET sources_1 [get_filesets sim_1] -import_files -fileset sim_1 -norecurse -force $test_bench_file -remove_files -quiet -fileset sim_1 ip_encoder_v1_0_tb_include.vh -import_files -fileset sim_1 -norecurse -force $interface_address_vh_file -set_property top ip_encoder_v1_0_tb [get_filesets sim_1] -set_property top_lib {} [get_filesets sim_1] -set_property top_file {} [get_filesets sim_1] -launch_simulation -simset sim_1 -mode behavioral diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/example_designs/bfm_design/ip_encoder_v1_0_tb.sv b/hardware/pl_platform/ip_repo/ip_encoder_1.0/example_designs/bfm_design/ip_encoder_v1_0_tb.sv deleted file mode 100644 index e5939a0..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/example_designs/bfm_design/ip_encoder_v1_0_tb.sv +++ /dev/null @@ -1,197 +0,0 @@ - -`timescale 1ns / 1ps -`include "ip_encoder_v1_0_tb_include.svh" - -import axi_vip_pkg::*; -import ip_encoder_v1_0_bfm_1_master_0_0_pkg::*; - -module ip_encoder_v1_0_tb(); - - -xil_axi_uint error_cnt = 0; -xil_axi_uint comparison_cnt = 0; -axi_transaction wr_transaction; -axi_transaction rd_transaction; -axi_monitor_transaction mst_monitor_transaction; -axi_monitor_transaction master_moniter_transaction_queue[$]; -xil_axi_uint master_moniter_transaction_queue_size =0; -axi_monitor_transaction mst_scb_transaction; -axi_monitor_transaction passthrough_monitor_transaction; -axi_monitor_transaction passthrough_master_moniter_transaction_queue[$]; -xil_axi_uint passthrough_master_moniter_transaction_queue_size =0; -axi_monitor_transaction passthrough_mst_scb_transaction; -axi_monitor_transaction passthrough_slave_moniter_transaction_queue[$]; -xil_axi_uint passthrough_slave_moniter_transaction_queue_size =0; -axi_monitor_transaction passthrough_slv_scb_transaction; -axi_monitor_transaction slv_monitor_transaction; -axi_monitor_transaction slave_moniter_transaction_queue[$]; -xil_axi_uint slave_moniter_transaction_queue_size =0; -axi_monitor_transaction slv_scb_transaction; -xil_axi_uint mst_agent_verbosity = 0; -xil_axi_uint slv_agent_verbosity = 0; -xil_axi_uint passthrough_agent_verbosity = 0; -bit clock; -bit reset; -integer result_slave; -bit [31:0] S00_AXI_test_data[3:0]; - localparam LC_AXI_BURST_LENGTH = 8; - localparam LC_AXI_DATA_WIDTH = 32; -task automatic COMPARE_DATA; - input [(LC_AXI_BURST_LENGTH * LC_AXI_DATA_WIDTH)-1:0]expected; - input [(LC_AXI_BURST_LENGTH * LC_AXI_DATA_WIDTH)-1:0]actual; - begin - if (expected === 'hx || actual === 'hx) begin - $display("TESTBENCH ERROR! COMPARE_DATA cannot be performed with an expected or actual vector that is all 'x'!"); - result_slave = 0; $stop; - end - if (actual != expected) begin - $display("TESTBENCH ERROR! Data expected is not equal to actual.", " expected = 0x%h",expected, " actual = 0x%h",actual); - result_slave = 0; - $stop; - end - else - begin - $display("TESTBENCH Passed! Data expected is equal to actual.", - " expected = 0x%h",expected, " actual = 0x%h",actual); - end - end -endtask -integer i; -integer j; -xil_axi_uint trans_cnt_before_switch = 48; -xil_axi_uint passthrough_cmd_switch_cnt = 0; -event passthrough_mastermode_start_event; -event passthrough_mastermode_end_event; -event passthrough_slavemode_end_event; -xil_axi_uint mtestID; -xil_axi_ulong mtestADDR; -xil_axi_len_t mtestBurstLength; -xil_axi_size_t mtestDataSize; -xil_axi_burst_t mtestBurstType; -xil_axi_lock_t mtestLOCK; -xil_axi_cache_t mtestCacheType = 0; -xil_axi_prot_t mtestProtectionType = 3'b000; -xil_axi_region_t mtestRegion = 4'b000; -xil_axi_qos_t mtestQOS = 4'b000; -xil_axi_data_beat dbeat; -xil_axi_data_beat [255:0] mtestWUSER; -xil_axi_data_beat mtestAWUSER = 'h0; -xil_axi_data_beat mtestARUSER = 0; -xil_axi_data_beat [255:0] mtestRUSER; -xil_axi_uint mtestBUSER = 0; -xil_axi_resp_t mtestBresp; -xil_axi_resp_t[255:0] mtestRresp; -bit [63:0] mtestWDataL; -bit [63:0] mtestRDataL; -axi_transaction pss_wr_transaction; -axi_transaction pss_rd_transaction; -axi_transaction reactive_transaction; -axi_transaction rd_payload_transaction; -axi_transaction wr_rand; -axi_transaction rd_rand; -axi_transaction wr_reactive; -axi_transaction rd_reactive; -axi_transaction wr_reactive2; -axi_transaction rd_reactive2; -axi_ready_gen bready_gen; -axi_ready_gen rready_gen; -axi_ready_gen awready_gen; -axi_ready_gen wready_gen; -axi_ready_gen arready_gen; -axi_ready_gen bready_gen2; -axi_ready_gen rready_gen2; -axi_ready_gen awready_gen2; -axi_ready_gen wready_gen2; -axi_ready_gen arready_gen2; -xil_axi_payload_byte data_mem[xil_axi_ulong]; -ip_encoder_v1_0_bfm_1_master_0_0_mst_t mst_agent_0; - - `BD_WRAPPER DUT( - .ARESETN(reset), - .ACLK(clock) - ); - -initial begin - mst_agent_0 = new("master vip agent",DUT.`BD_INST_NAME.master_0.inst.IF);//ms - mst_agent_0.vif_proxy.set_dummy_drive_type(XIL_AXI_VIF_DRIVE_NONE); - mst_agent_0.set_agent_tag("Master VIP"); - mst_agent_0.set_verbosity(mst_agent_verbosity); - mst_agent_0.start_master(); - $timeformat (-12, 1, " ps", 1); - end - initial begin - reset <= 1'b0; - #200ns; - reset <= 1'b1; - repeat (5) @(negedge clock); - end - always #5 clock <= ~clock; - initial begin - S_AXI_TEST ( ); - - #1ns; - $finish; - end -task automatic S_AXI_TEST; -begin -#1; - $display("Sequential write transfers example similar to AXI BFM WRITE_BURST method starts"); - mtestID = 0; - mtestADDR = 64'h00000000; - mtestBurstLength = 0; - mtestDataSize = xil_axi_size_t'(xil_clog2(32/8)); - mtestBurstType = XIL_AXI_BURST_TYPE_INCR; - mtestLOCK = XIL_AXI_ALOCK_NOLOCK; - mtestCacheType = 0; - mtestProtectionType = 0; - mtestRegion = 0; - mtestQOS = 0; - result_slave = 1; - mtestWDataL[31:0] = 32'h00000001; - for(int i = 0; i < 4;i++) begin - S00_AXI_test_data[i] <= mtestWDataL[31:0]; - mst_agent_0.AXI4LITE_WRITE_BURST( - mtestADDR, - mtestProtectionType, - mtestWDataL, - mtestBresp - ); - mtestWDataL[31:0] = mtestWDataL[31:0] + 1; - mtestADDR = mtestADDR + 64'h4; - end - $display("Sequential write transfers example similar to AXI BFM WRITE_BURST method completes"); - $display("Sequential read transfers example similar to AXI BFM READ_BURST method starts"); - mtestID = 0; - mtestADDR = 64'h00000000; - mtestBurstLength = 0; - mtestDataSize = xil_axi_size_t'(xil_clog2(32/8)); - mtestBurstType = XIL_AXI_BURST_TYPE_INCR; - mtestLOCK = XIL_AXI_ALOCK_NOLOCK; - mtestCacheType = 0; - mtestProtectionType = 0; - mtestRegion = 0; - mtestQOS = 0; - for(int i = 0; i < 4;i++) begin - mst_agent_0.AXI4LITE_READ_BURST( - mtestADDR, - mtestProtectionType, - mtestRDataL, - mtestRresp - ); - mtestADDR = mtestADDR + 64'h4; - COMPARE_DATA(S00_AXI_test_data[i],mtestRDataL); - end - $display("Sequential read transfers example similar to AXI BFM READ_BURST method completes"); - $display("Sequential read transfers example similar to AXI VIP READ_BURST method completes"); - $display("---------------------------------------------------------"); - $display("EXAMPLE TEST S00_AXI: PTGEN_TEST_FINISHED!"); - if ( result_slave ) begin - $display("PTGEN_TEST: PASSED!"); - end else begin - $display("PTGEN_TEST: FAILED!"); - end - $display("---------------------------------------------------------"); - end -endtask - -endmodule diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/example_designs/debug_hw_design/design.tcl b/hardware/pl_platform/ip_repo/ip_encoder_1.0/example_designs/debug_hw_design/design.tcl deleted file mode 100644 index 370404f..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/example_designs/debug_hw_design/design.tcl +++ /dev/null @@ -1,118 +0,0 @@ - -proc create_ipi_design { offsetfile design_name } { - - create_bd_design $design_name - open_bd_design $design_name - - # Create and configure Clock/Reset - create_bd_cell -type ip -vlnv xilinx.com:ip:clk_wiz sys_clk_0 - create_bd_cell -type ip -vlnv xilinx.com:ip:proc_sys_reset sys_reset_0 - - #Constraints will be provided manually while pin planning. - create_bd_port -dir I -type rst reset_rtl - set_property CONFIG.POLARITY [get_property CONFIG.POLARITY [get_bd_pins sys_clk_0/reset]] [get_bd_ports reset_rtl] - connect_bd_net [get_bd_pins sys_reset_0/ext_reset_in] [get_bd_ports reset_rtl] - connect_bd_net [get_bd_ports reset_rtl] [get_bd_pins sys_clk_0/reset] - set external_reset_port reset_rtl - create_bd_port -dir I -type clk clock_rtl - connect_bd_net [get_bd_pins sys_clk_0/clk_in1] [get_bd_ports clock_rtl] - set external_clock_port clock_rtl - - #Avoid IPI DRC, make clock port synchronous to reset - if { $external_clock_port ne "" && $external_reset_port ne "" } { - set_property CONFIG.ASSOCIATED_RESET $external_reset_port [get_bd_ports $external_clock_port] - } - - # Connect other sys_reset pins - connect_bd_net [get_bd_pins sys_reset_0/slowest_sync_clk] [get_bd_pins sys_clk_0/clk_out1] - connect_bd_net [get_bd_pins sys_clk_0/locked] [get_bd_pins sys_reset_0/dcm_locked] - - # Create instance: ip_encoder_0, and set properties - set ip_encoder_0 [ create_bd_cell -type ip -vlnv user.org:user:ip_encoder:1.0 ip_encoder_0 ] - - # Create instance: jtag_axi_0, and set properties - set jtag_axi_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:jtag_axi jtag_axi_0 ] - set_property -dict [list CONFIG.PROTOCOL {0}] [get_bd_cells jtag_axi_0] - connect_bd_net [get_bd_pins jtag_axi_0/aclk] [get_bd_pins sys_clk_0/clk_out1] - connect_bd_net [get_bd_pins jtag_axi_0/aresetn] [get_bd_pins sys_reset_0/peripheral_aresetn] - - # Create instance: axi_peri_interconnect, and set properties - set axi_peri_interconnect [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect axi_peri_interconnect ] - connect_bd_net [get_bd_pins axi_peri_interconnect/ACLK] [get_bd_pins sys_clk_0/clk_out1] - connect_bd_net [get_bd_pins axi_peri_interconnect/ARESETN] [get_bd_pins sys_reset_0/interconnect_aresetn] - set_property -dict [ list CONFIG.NUM_SI {1} ] $axi_peri_interconnect - connect_bd_net [get_bd_pins axi_peri_interconnect/S00_ACLK] [get_bd_pins sys_clk_0/clk_out1] - connect_bd_net [get_bd_pins axi_peri_interconnect/S00_ARESETN] [get_bd_pins sys_reset_0/peripheral_aresetn] - connect_bd_intf_net [get_bd_intf_pins jtag_axi_0/M_AXI] [get_bd_intf_pins axi_peri_interconnect/S00_AXI] - - set_property -dict [ list CONFIG.NUM_MI {1} ] $axi_peri_interconnect - connect_bd_net [get_bd_pins axi_peri_interconnect/M00_ACLK] [get_bd_pins sys_clk_0/clk_out1] - connect_bd_net [get_bd_pins axi_peri_interconnect/M00_ARESETN] [get_bd_pins sys_reset_0/peripheral_aresetn] - - # Connect all clock & reset of ip_encoder_0 slave interfaces.. - connect_bd_intf_net [get_bd_intf_pins axi_peri_interconnect/M00_AXI] [get_bd_intf_pins ip_encoder_0/S00_AXI] - connect_bd_net [get_bd_pins ip_encoder_0/s00_axi_aclk] [get_bd_pins sys_clk_0/clk_out1] - connect_bd_net [get_bd_pins ip_encoder_0/s00_axi_aresetn] [get_bd_pins sys_reset_0/peripheral_aresetn] - - - # Auto assign address - assign_bd_address - - # Copy all address to ip_encoder_v1_0_include.tcl file - set bd_path [get_property DIRECTORY [current_project]]/[current_project].srcs/[current_fileset]/bd - upvar 1 $offsetfile offset_file - set offset_file "${bd_path}/ip_encoder_v1_0_include.tcl" - set fp [open $offset_file "w"] - puts $fp "# Configuration address parameters" - - set offset [get_property OFFSET [get_bd_addr_segs /jtag_axi_0/Data/SEG_ip_encoder_0_S00_AXI_* ]] - puts $fp "set s00_axi_addr ${offset}" - - close $fp -} - -# Set IP Repository and Update IP Catalogue -set ip_path [file dirname [file normalize [get_property XML_FILE_NAME [ipx::get_cores user.org:user:ip_encoder:1.0]]]] -set hw_test_file ${ip_path}/example_designs/debug_hw_design/ip_encoder_v1_0_hw_test.tcl - -set repo_paths [get_property ip_repo_paths [current_fileset]] -if { [lsearch -exact -nocase $repo_paths $ip_path ] == -1 } { - set_property ip_repo_paths "$ip_path [get_property ip_repo_paths [current_fileset]]" [current_fileset] - update_ip_catalog -} - -set design_name "" -set all_bd {} -set all_bd_files [get_files *.bd -quiet] -foreach file $all_bd_files { -set file_name [string range $file [expr {[string last "/" $file] + 1}] end] -set bd_name [string range $file_name 0 [expr {[string last "." $file_name] -1}]] -lappend all_bd $bd_name -} - -for { set i 1 } { 1 } { incr i } { - set design_name "ip_encoder_v1_0_hw_${i}" - if { [lsearch -exact -nocase $all_bd $design_name ] == -1 } { - break - } -} - -set intf_address_include_file "" -create_ipi_design intf_address_include_file ${design_name} -save_bd_design -validate_bd_design - -set wrapper_file [make_wrapper -files [get_files ${design_name}.bd] -top -force] -import_files -force -norecurse $wrapper_file - -puts "-------------------------------------------------------------------------------------------------" -puts "INFO NEXT STEPS : Until this stage, debug hardware design has been created, " -puts " please perform following steps to test design in targeted board." -puts "1. Generate bitstream" -puts "2. Setup your targeted board, open hardware manager and open new(or existing) hardware target" -puts "3. Download generated bitstream" -puts "4. Run generated hardware test using below command, this invokes basic read/write operation" -puts " to every interface present in the peripheral : xilinx.com:user:myip:1.0" -puts " : source -notrace ${hw_test_file}" -puts "-------------------------------------------------------------------------------------------------" - diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/example_designs/debug_hw_design/ip_encoder_v1_0_hw_test.tcl b/hardware/pl_platform/ip_repo/ip_encoder_1.0/example_designs/debug_hw_design/ip_encoder_v1_0_hw_test.tcl deleted file mode 100644 index a08bb26..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/example_designs/debug_hw_design/ip_encoder_v1_0_hw_test.tcl +++ /dev/null @@ -1,45 +0,0 @@ -# Runtime Tcl commands to interact with - ip_encoder_v1_0 - -# Sourcing design address info tcl -set bd_path [get_property DIRECTORY [current_project]]/[current_project].srcs/[current_fileset]/bd -source ${bd_path}/ip_encoder_v1_0_include.tcl - -# jtag axi master interface hardware name, change as per your design. -set jtag_axi_master hw_axi_1 -set ec 0 - -# hw test script -# Delete all previous axis transactions -if { [llength [get_hw_axi_txns -quiet]] } { - delete_hw_axi_txn [get_hw_axi_txns -quiet] -} - - -# Test all lite slaves. -set wdata_1 abcd1234 - -# Test: S00_AXI -# Create a write transaction at s00_axi_addr address -create_hw_axi_txn w_s00_axi_addr [get_hw_axis $jtag_axi_master] -type write -address $s00_axi_addr -data $wdata_1 -# Create a read transaction at s00_axi_addr address -create_hw_axi_txn r_s00_axi_addr [get_hw_axis $jtag_axi_master] -type read -address $s00_axi_addr -# Initiate transactions -run_hw_axi r_s00_axi_addr -run_hw_axi w_s00_axi_addr -run_hw_axi r_s00_axi_addr -set rdata_tmp [get_property DATA [get_hw_axi_txn r_s00_axi_addr]] -# Compare read data -if { $rdata_tmp == $wdata_1 } { - puts "Data comparison test pass for - S00_AXI" -} else { - puts "Data comparison test fail for - S00_AXI, expected-$wdata_1 actual-$rdata_tmp" - inc ec -} - -# Check error flag -if { $ec == 0 } { - puts "PTGEN_TEST: PASSED!" -} else { - puts "PTGEN_TEST: FAILED!" -} - diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/hdl/ip_encoder_v1_0.v b/hardware/pl_platform/ip_repo/ip_encoder_1.0/hdl/ip_encoder_v1_0.v deleted file mode 100644 index 92d055a..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/hdl/ip_encoder_v1_0.v +++ /dev/null @@ -1,102 +0,0 @@ - -`timescale 1 ns / 1 ps - - module ip_encoder_v1_0 # - ( - // Users to add parameters here - - // User parameters ends - // Do not modify the parameters beyond this line - - - // Parameters of Axi Slave Bus Interface S00_AXI - parameter integer C_S00_AXI_DATA_WIDTH = 32, - parameter integer C_S00_AXI_ADDR_WIDTH = 5 - ) - ( - // Users to add ports here - input in_signal, - input exrst_n, - output out_signal_valve_posedge, - output out_signal_valve, - output out_signal_camera_a_posedge, - output out_signal_camera_b_posedge, - output out_signal_camera_c_posedge, - output out_signal_camera_d_posedge, - output out_signal_camera_a, - output out_signal_camera_b, - output out_signal_camera_c, - output out_signal_camera_d, - - // User ports ends - // Do not modify the ports beyond this line - - - // Ports of Axi Slave Bus Interface S00_AXI - input wire s00_axi_aclk, - input wire s00_axi_aresetn, - input wire [C_S00_AXI_ADDR_WIDTH-1 : 0] s00_axi_awaddr, - input wire [2 : 0] s00_axi_awprot, - input wire s00_axi_awvalid, - output wire s00_axi_awready, - input wire [C_S00_AXI_DATA_WIDTH-1 : 0] s00_axi_wdata, - input wire [(C_S00_AXI_DATA_WIDTH/8)-1 : 0] s00_axi_wstrb, - input wire s00_axi_wvalid, - output wire s00_axi_wready, - output wire [1 : 0] s00_axi_bresp, - output wire s00_axi_bvalid, - input wire s00_axi_bready, - input wire [C_S00_AXI_ADDR_WIDTH-1 : 0] s00_axi_araddr, - input wire [2 : 0] s00_axi_arprot, - input wire s00_axi_arvalid, - output wire s00_axi_arready, - output wire [C_S00_AXI_DATA_WIDTH-1 : 0] s00_axi_rdata, - output wire [1 : 0] s00_axi_rresp, - output wire s00_axi_rvalid, - input wire s00_axi_rready - ); -// Instantiation of Axi Bus Interface S00_AXI - ip_encoder_v1_0_S00_AXI # ( - .C_S_AXI_DATA_WIDTH(C_S00_AXI_DATA_WIDTH), - .C_S_AXI_ADDR_WIDTH(C_S00_AXI_ADDR_WIDTH) - ) ip_encoder_v1_0_S00_AXI_inst ( - .in_signal(in_signal), - .exrst_n (exrst_n), - .out_signal_valve_posedge(out_signal_valve_posedge), - .out_signal_valve(out_signal_valve), - .out_signal_camera_a_posedge(out_signal_camera_a_posedge), - .out_signal_camera_b_posedge(out_signal_camera_b_posedge), - .out_signal_camera_c_posedge(out_signal_camera_c_posedge), - .out_signal_camera_d_posedge(out_signal_camera_d_posedge), - .out_signal_camera_a(out_signal_camera_a), - .out_signal_camera_b(out_signal_camera_b), - .out_signal_camera_c(out_signal_camera_c), - .out_signal_camera_d(out_signal_camera_d), - .S_AXI_ACLK(s00_axi_aclk), - .S_AXI_ARESETN(s00_axi_aresetn), - .S_AXI_AWADDR(s00_axi_awaddr), - .S_AXI_AWPROT(s00_axi_awprot), - .S_AXI_AWVALID(s00_axi_awvalid), - .S_AXI_AWREADY(s00_axi_awready), - .S_AXI_WDATA(s00_axi_wdata), - .S_AXI_WSTRB(s00_axi_wstrb), - .S_AXI_WVALID(s00_axi_wvalid), - .S_AXI_WREADY(s00_axi_wready), - .S_AXI_BRESP(s00_axi_bresp), - .S_AXI_BVALID(s00_axi_bvalid), - .S_AXI_BREADY(s00_axi_bready), - .S_AXI_ARADDR(s00_axi_araddr), - .S_AXI_ARPROT(s00_axi_arprot), - .S_AXI_ARVALID(s00_axi_arvalid), - .S_AXI_ARREADY(s00_axi_arready), - .S_AXI_RDATA(s00_axi_rdata), - .S_AXI_RRESP(s00_axi_rresp), - .S_AXI_RVALID(s00_axi_rvalid), - .S_AXI_RREADY(s00_axi_rready) - ); - - // Add user logic here - - // User logic ends - - endmodule diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/hdl/ip_encoder_v1_0_S00_AXI.v b/hardware/pl_platform/ip_repo/ip_encoder_1.0/hdl/ip_encoder_v1_0_S00_AXI.v deleted file mode 100644 index 0179a57..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/hdl/ip_encoder_v1_0_S00_AXI.v +++ /dev/null @@ -1,482 +0,0 @@ - -`timescale 1 ns / 1 ps - - module ip_encoder_v1_0_S00_AXI # - ( - // Users to add parameters here - - // User parameters ends - // Do not modify the parameters beyond this line - - // Width of S_AXI data bus - parameter integer C_S_AXI_DATA_WIDTH = 32, - // Width of S_AXI address bus - parameter integer C_S_AXI_ADDR_WIDTH = 5 - ) - ( - // Users to add ports here - input in_signal, - input exrst_n, - output out_signal_valve_posedge, - output out_signal_valve, - output out_signal_camera_a_posedge, - output out_signal_camera_b_posedge, - output out_signal_camera_c_posedge, - output out_signal_camera_d_posedge, - output out_signal_camera_a, - output out_signal_camera_b, - output out_signal_camera_c, - output out_signal_camera_d, - - // User ports ends - // Do not modify the ports beyond this line - - // Global Clock Signal - input wire S_AXI_ACLK, - // Global Reset Signal. This Signal is Active LOW - input wire S_AXI_ARESETN, - // Write address (issued by master, acceped by Slave) - input wire [C_S_AXI_ADDR_WIDTH-1 : 0] S_AXI_AWADDR, - // Write channel Protection type. This signal indicates the - // privilege and security level of the transaction, and whether - // the transaction is a data access or an instruction access. - input wire [2 : 0] S_AXI_AWPROT, - // Write address valid. This signal indicates that the master signaling - // valid write address and control information. - input wire S_AXI_AWVALID, - // Write address ready. This signal indicates that the slave is ready - // to accept an address and associated control signals. - output wire S_AXI_AWREADY, - // Write data (issued by master, acceped by Slave) - input wire [C_S_AXI_DATA_WIDTH-1 : 0] S_AXI_WDATA, - // Write strobes. This signal indicates which byte lanes hold - // valid data. There is one write strobe bit for each eight - // bits of the write data bus. - input wire [(C_S_AXI_DATA_WIDTH/8)-1 : 0] S_AXI_WSTRB, - // Write valid. This signal indicates that valid write - // data and strobes are available. - input wire S_AXI_WVALID, - // Write ready. This signal indicates that the slave - // can accept the write data. - output wire S_AXI_WREADY, - // Write response. This signal indicates the status - // of the write transaction. - output wire [1 : 0] S_AXI_BRESP, - // Write response valid. This signal indicates that the channel - // is signaling a valid write response. - output wire S_AXI_BVALID, - // Response ready. This signal indicates that the master - // can accept a write response. - input wire S_AXI_BREADY, - // Read address (issued by master, acceped by Slave) - input wire [C_S_AXI_ADDR_WIDTH-1 : 0] S_AXI_ARADDR, - // Protection type. This signal indicates the privilege - // and security level of the transaction, and whether the - // transaction is a data access or an instruction access. - input wire [2 : 0] S_AXI_ARPROT, - // Read address valid. This signal indicates that the channel - // is signaling valid read address and control information. - input wire S_AXI_ARVALID, - // Read address ready. This signal indicates that the slave is - // ready to accept an address and associated control signals. - output wire S_AXI_ARREADY, - // Read data (issued by slave) - output wire [C_S_AXI_DATA_WIDTH-1 : 0] S_AXI_RDATA, - // Read response. This signal indicates the status of the - // read transfer. - output wire [1 : 0] S_AXI_RRESP, - // Read valid. This signal indicates that the channel is - // signaling the required read data. - output wire S_AXI_RVALID, - // Read ready. This signal indicates that the master can - // accept the read data and response information. - input wire S_AXI_RREADY - ); - - // AXI4LITE signals - reg [C_S_AXI_ADDR_WIDTH-1 : 0] axi_awaddr; - reg axi_awready; - reg axi_wready; - reg [1 : 0] axi_bresp; - reg axi_bvalid; - reg [C_S_AXI_ADDR_WIDTH-1 : 0] axi_araddr; - reg axi_arready; - reg [C_S_AXI_DATA_WIDTH-1 : 0] axi_rdata; - reg [1 : 0] axi_rresp; - reg axi_rvalid; - - // Example-specific design signals - // local parameter for addressing 32 bit / 64 bit C_S_AXI_DATA_WIDTH - // ADDR_LSB is used for addressing 32/64 bit registers/memories - // ADDR_LSB = 2 for 32 bits (n downto 2) - // ADDR_LSB = 3 for 64 bits (n downto 3) - localparam integer ADDR_LSB = (C_S_AXI_DATA_WIDTH/32) + 1; - localparam integer OPT_MEM_ADDR_BITS = 2; - //---------------------------------------------- - //-- Signals for user logic register space example - //------------------------------------------------ - //-- Number of Slave Registers 8 - reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg0; - reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg1; - reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg2; - reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg3; - reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg4; - reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg5; - reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg6; - reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg7; - wire slv_reg_rden; - wire slv_reg_wren; - reg [C_S_AXI_DATA_WIDTH-1:0] reg_data_out; - integer byte_index; - reg aw_en; - - // I/O Connections assignments - - assign S_AXI_AWREADY = axi_awready; - assign S_AXI_WREADY = axi_wready; - assign S_AXI_BRESP = axi_bresp; - assign S_AXI_BVALID = axi_bvalid; - assign S_AXI_ARREADY = axi_arready; - assign S_AXI_RDATA = axi_rdata; - assign S_AXI_RRESP = axi_rresp; - assign S_AXI_RVALID = axi_rvalid; - // Implement axi_awready generation - // axi_awready is asserted for one S_AXI_ACLK clock cycle when both - // S_AXI_AWVALID and S_AXI_WVALID are asserted. axi_awready is - // de-asserted when reset is low. - - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - axi_awready <= 1'b0; - aw_en <= 1'b1; - end - else - begin - if (~axi_awready && S_AXI_AWVALID && S_AXI_WVALID && aw_en) - begin - // slave is ready to accept write address when - // there is a valid write address and write data - // on the write address and data bus. This design - // expects no outstanding transactions. - axi_awready <= 1'b1; - aw_en <= 1'b0; - end - else if (S_AXI_BREADY && axi_bvalid) - begin - aw_en <= 1'b1; - axi_awready <= 1'b0; - end - else - begin - axi_awready <= 1'b0; - end - end - end - - // Implement axi_awaddr latching - // This process is used to latch the address when both - // S_AXI_AWVALID and S_AXI_WVALID are valid. - - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - axi_awaddr <= 0; - end - else - begin - if (~axi_awready && S_AXI_AWVALID && S_AXI_WVALID && aw_en) - begin - // Write Address latching - axi_awaddr <= S_AXI_AWADDR; - end - end - end - - // Implement axi_wready generation - // axi_wready is asserted for one S_AXI_ACLK clock cycle when both - // S_AXI_AWVALID and S_AXI_WVALID are asserted. axi_wready is - // de-asserted when reset is low. - - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - axi_wready <= 1'b0; - end - else - begin - if (~axi_wready && S_AXI_WVALID && S_AXI_AWVALID && aw_en ) - begin - // slave is ready to accept write data when - // there is a valid write address and write data - // on the write address and data bus. This design - // expects no outstanding transactions. - axi_wready <= 1'b1; - end - else - begin - axi_wready <= 1'b0; - end - end - end - - // Implement memory mapped register select and write logic generation - // The write data is accepted and written to memory mapped registers when - // axi_awready, S_AXI_WVALID, axi_wready and S_AXI_WVALID are asserted. Write strobes are used to - // select byte enables of slave registers while writing. - // These registers are cleared when reset (active low) is applied. - // Slave register write enable is asserted when valid address and data are available - // and the slave is ready to accept the write address and write data. - assign slv_reg_wren = axi_wready && S_AXI_WVALID && axi_awready && S_AXI_AWVALID; - - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - slv_reg0 <= 32'h9; - slv_reg1 <= 0; - slv_reg2 <= 0; - slv_reg3 <= 0; - slv_reg4 <= 0; - slv_reg5 <= 0; - slv_reg6 <= 0; - slv_reg7 <= 0; - end - else begin - if (slv_reg_wren) - begin - case ( axi_awaddr[ADDR_LSB+OPT_MEM_ADDR_BITS:ADDR_LSB] ) - 3'h0: - for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) - if ( S_AXI_WSTRB[byte_index] == 1 ) begin - // Respective byte enables are asserted as per write strobes - // Slave register 0 - slv_reg0[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; - end - 3'h1: - for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) - if ( S_AXI_WSTRB[byte_index] == 1 ) begin - // Respective byte enables are asserted as per write strobes - // Slave register 1 - slv_reg1[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; - end - 3'h2: - for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) - if ( S_AXI_WSTRB[byte_index] == 1 ) begin - // Respective byte enables are asserted as per write strobes - // Slave register 2 - slv_reg2[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; - end - 3'h3: - for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) - if ( S_AXI_WSTRB[byte_index] == 1 ) begin - // Respective byte enables are asserted as per write strobes - // Slave register 3 - slv_reg3[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; - end - 3'h4: - for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) - if ( S_AXI_WSTRB[byte_index] == 1 ) begin - // Respective byte enables are asserted as per write strobes - // Slave register 3 - slv_reg4[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; - end - 3'h5: - for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) - if ( S_AXI_WSTRB[byte_index] == 1 ) begin - // Respective byte enables are asserted as per write strobes - // Slave register 3 - slv_reg5[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; - end - 3'h6: - for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) - if ( S_AXI_WSTRB[byte_index] == 1 ) begin - // Respective byte enables are asserted as per write strobes - // Slave register 3 - slv_reg6[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; - end - 3'h7: - for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) - if ( S_AXI_WSTRB[byte_index] == 1 ) begin - // Respective byte enables are asserted as per write strobes - // Slave register 3 - slv_reg7[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; - end - default : begin - slv_reg0 <= slv_reg0; - slv_reg1 <= slv_reg1; - slv_reg2 <= slv_reg2; - slv_reg3 <= slv_reg3; - slv_reg4 <= slv_reg4; - slv_reg5 <= slv_reg5; - slv_reg6 <= slv_reg6; - slv_reg7 <= slv_reg7; - end - endcase - end - end - end - - // Implement write response logic generation - // The write response and response valid signals are asserted by the slave - // when axi_wready, S_AXI_WVALID, axi_wready and S_AXI_WVALID are asserted. - // This marks the acceptance of address and indicates the status of - // write transaction. - - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - axi_bvalid <= 0; - axi_bresp <= 2'b0; - end - else - begin - if (axi_awready && S_AXI_AWVALID && ~axi_bvalid && axi_wready && S_AXI_WVALID) - begin - // indicates a valid write response is available - axi_bvalid <= 1'b1; - axi_bresp <= 2'b0; // 'OKAY' response - end // work error responses in future - else - begin - if (S_AXI_BREADY && axi_bvalid) - //check if bready is asserted while bvalid is high) - //(there is a possibility that bready is always asserted high) - begin - axi_bvalid <= 1'b0; - end - end - end - end - - // Implement axi_arready generation - // axi_arready is asserted for one S_AXI_ACLK clock cycle when - // S_AXI_ARVALID is asserted. axi_awready is - // de-asserted when reset (active low) is asserted. - // The read address is also latched when S_AXI_ARVALID is - // asserted. axi_araddr is reset to zero on reset assertion. - - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - axi_arready <= 1'b0; - axi_araddr <= 32'b0; - end - else - begin - if (~axi_arready && S_AXI_ARVALID) - begin - // indicates that the slave has acceped the valid read address - axi_arready <= 1'b1; - // Read address latching - axi_araddr <= S_AXI_ARADDR; - end - else - begin - axi_arready <= 1'b0; - end - end - end - - // Implement axi_arvalid generation - // axi_rvalid is asserted for one S_AXI_ACLK clock cycle when both - // S_AXI_ARVALID and axi_arready are asserted. The slave registers - // data are available on the axi_rdata bus at this instance. The - // assertion of axi_rvalid marks the validity of read data on the - // bus and axi_rresp indicates the status of read transaction.axi_rvalid - // is deasserted on reset (active low). axi_rresp and axi_rdata are - // cleared to zero on reset (active low). - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - axi_rvalid <= 0; - axi_rresp <= 0; - end - else - begin - if (axi_arready && S_AXI_ARVALID && ~axi_rvalid) - begin - // Valid read data is available at the read data bus - axi_rvalid <= 1'b1; - axi_rresp <= 2'b0; // 'OKAY' response - end - else if (axi_rvalid && S_AXI_RREADY) - begin - // Read data is accepted by the master - axi_rvalid <= 1'b0; - end - end - end - - // Implement memory mapped register select and read logic generation - // Slave register read enable is asserted when valid address is available - // and the slave is ready to accept the read address. - assign slv_reg_rden = axi_arready & S_AXI_ARVALID & ~axi_rvalid; - always @(*) - begin - // Address decoding for reading registers - case ( axi_araddr[ADDR_LSB+OPT_MEM_ADDR_BITS:ADDR_LSB] ) - 3'h0 : reg_data_out <= slv_reg0; - 3'h1 : reg_data_out <= slv_reg1; - 3'h2 : reg_data_out <= slv_reg2; - 3'h3 : reg_data_out <= slv_reg3; - 3'h4 : reg_data_out <= slv_reg4; - 3'h5 : reg_data_out <= slv_reg5; - 3'h6 : reg_data_out <= slv_reg6; - 3'h7 : reg_data_out <= slv_reg7; - default : reg_data_out <= 0; - endcase - end - - // Output register or memory read data - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - axi_rdata <= 0; - end - else - begin - // When there is a valid read address (S_AXI_ARVALID) with - // acceptance of read address by the slave (axi_arready), - // output the read dada - if (slv_reg_rden) - begin - axi_rdata <= reg_data_out; // register read data - end - end - end - - wire in_signal_tmp = slv_reg0[1] ? slv_reg0[2] : in_signal; //0:external 1:internal - wire encoder_rst_n = slv_reg0[0] & S_AXI_ARESETN & (slv_reg0[3] | exrst_n); - // Add user logic here - encoder encoder_inst( - .sys_clk(S_AXI_ACLK), - .rst_n(encoder_rst_n), - .in_signal(in_signal_tmp), - .valve_signal_divider(slv_reg1), - .camera_signal_divider_a(slv_reg2), - .camera_signal_divider_b(slv_reg3), - .camera_signal_divider_c(slv_reg4), - .camera_signal_divider_d(slv_reg5), - - .out_signal_valve_posedge(out_signal_valve_posedge), - .out_signal_valve(out_signal_valve), - .out_signal_camera_a_posedge(out_signal_camera_a_posedge), - .out_signal_camera_b_posedge(out_signal_camera_b_posedge), - .out_signal_camera_c_posedge(out_signal_camera_c_posedge), - .out_signal_camera_d_posedge(out_signal_camera_d_posedge), - .out_signal_camera_a(out_signal_camera_a), - .out_signal_camera_b(out_signal_camera_b), - .out_signal_camera_c(out_signal_camera_c), - .out_signal_camera_d(out_signal_camera_d) - ); - // User logic ends - - endmodule diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/ip_encoder_0.xcix b/hardware/pl_platform/ip_repo/ip_encoder_1.0/ip_encoder_0.xcix deleted file mode 100644 index 3373acb..0000000 Binary files a/hardware/pl_platform/ip_repo/ip_encoder_1.0/ip_encoder_0.xcix and /dev/null differ diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/src/encoder.v b/hardware/pl_platform/ip_repo/ip_encoder_1.0/src/encoder.v deleted file mode 100644 index 8c2e876..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/src/encoder.v +++ /dev/null @@ -1,226 +0,0 @@ -module encoder( - input sys_clk, - input rst_n, - input in_signal, - input [31:0] valve_signal_divider, - input [31:0] camera_signal_divider_a, - input [31:0] camera_signal_divider_b, - input [31:0] camera_signal_divider_c, - input [31:0] camera_signal_divider_d, - output out_signal_valve_posedge, - output reg out_signal_valve, - output out_signal_camera_a_posedge, - output out_signal_camera_b_posedge, - output out_signal_camera_c_posedge, - output out_signal_camera_d_posedge, - output reg out_signal_camera_a, - output reg out_signal_camera_b, - output reg out_signal_camera_c, - output reg out_signal_camera_d - ); - - wire [31:0] valve_signal_divider_div_2 = {1'b0, valve_signal_divider[31:1]}; - wire [31:0] camera_signal_divider_a_div_2 = {1'b0, camera_signal_divider_a[31:1]}; - wire [31:0] camera_signal_divider_b_div_2 = {1'b0, camera_signal_divider_b[31:1]}; - wire [31:0] camera_signal_divider_c_div_2 = {1'b0, camera_signal_divider_c[31:1]}; - wire [31:0] camera_signal_divider_d_div_2 = {1'b0, camera_signal_divider_d[31:1]}; - - reg [31:0] valve_signal_divider_tmp; - reg [31:0] camera_signal_divider_a_tmp; - reg [31:0] camera_signal_divider_b_tmp; - reg [31:0] camera_signal_divider_c_tmp; - reg [31:0] camera_signal_divider_d_tmp; - - wire rst_n_inter = (valve_signal_divider_tmp == valve_signal_divider) && (camera_signal_divider_a_tmp == camera_signal_divider_a) && (camera_signal_divider_b_tmp == camera_signal_divider_b)&& (camera_signal_divider_c_tmp == camera_signal_divider_c)&& (camera_signal_divider_d_tmp == camera_signal_divider_d)&& rst_n; - always @(posedge sys_clk) begin - valve_signal_divider_tmp <= valve_signal_divider; - camera_signal_divider_a_tmp <= camera_signal_divider_a; - camera_signal_divider_b_tmp <= camera_signal_divider_b; - camera_signal_divider_c_tmp <= camera_signal_divider_c; - camera_signal_divider_d_tmp <= camera_signal_divider_d; - end - - reg [1:0] in_signal_buffer; - wire in_signal_posedge = in_signal_buffer[0] && !in_signal_buffer[1]; - wire in_signal_negedge = !in_signal_buffer[0] && in_signal_buffer[1]; - wire in_signal_edge = in_signal_posedge || in_signal_negedge; - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - in_signal_buffer <= 0; - end - else begin - in_signal_buffer[0] <= in_signal; - in_signal_buffer[1] <= in_signal_buffer[0]; - end - end - - reg [1:0] out_signal_valve_buffer; - // Actually, !out_signal_valve_buffer[0] && out_signal_valve_buffer[1] is the negedge, it is name posedge because I accidentally made a mistake. - // When I found the mistake, It's too much trouble to change the name, so it was not changed. - assign out_signal_valve_posedge = !out_signal_valve_buffer[0] && out_signal_valve_buffer[1];//实际为下降沿 - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - out_signal_valve_buffer <= 0; - end - else begin - out_signal_valve_buffer[0] <= out_signal_valve; - out_signal_valve_buffer[1] <= out_signal_valve_buffer[0]; - end - end - - reg[1:0] out_signal_camera_a_buffer; - reg[1:0] out_signal_camera_b_buffer; - reg[1:0] out_signal_camera_c_buffer; - reg[1:0] out_signal_camera_d_buffer; - assign out_signal_camera_a_posedge = out_signal_camera_a_buffer[0] && !out_signal_camera_a_buffer[1]; - assign out_signal_camera_b_posedge = out_signal_camera_b_buffer[0] && !out_signal_camera_b_buffer[1]; - assign out_signal_camera_c_posedge = out_signal_camera_c_buffer[0] && !out_signal_camera_c_buffer[1]; - assign out_signal_camera_d_posedge = out_signal_camera_d_buffer[0] && !out_signal_camera_d_buffer[1]; - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - out_signal_camera_a_buffer <= 0; - end - else begin - out_signal_camera_a_buffer[0] <= out_signal_camera_a; - out_signal_camera_a_buffer[1] <= out_signal_camera_a_buffer[0]; - end - end - - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - out_signal_camera_b_buffer <= 0; - end - else begin - out_signal_camera_b_buffer[0] <= out_signal_camera_b; - out_signal_camera_b_buffer[1] <= out_signal_camera_b_buffer[0]; - end - end - - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - out_signal_camera_c_buffer <= 0; - end - else begin - out_signal_camera_c_buffer[0] <= out_signal_camera_c; - out_signal_camera_c_buffer[1] <= out_signal_camera_c_buffer[0]; - end - end - - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - out_signal_camera_d_buffer <= 0; - end - else begin - out_signal_camera_d_buffer[0] <= out_signal_camera_d; - out_signal_camera_d_buffer[1] <= out_signal_camera_d_buffer[0]; - end - end - - reg [31:0] counter_valve; - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - counter_valve <= 0; - end - else if (counter_valve == valve_signal_divider_div_2) begin - counter_valve <= 0; - end - else if (in_signal_posedge) begin - counter_valve <= counter_valve + 1; - end - end - - reg [31:0] counter_camera_a; - reg [31:0] counter_camera_b; - reg [31:0] counter_camera_c; - reg [31:0] counter_camera_d; - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - counter_camera_a <= 0; - end - else if (counter_camera_a == camera_signal_divider_a_div_2) begin - counter_camera_a <= 0; - end - else if (in_signal_posedge) begin - counter_camera_a <= counter_camera_a + 1; - end - end - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - counter_camera_b <= 0; - end - else if (counter_camera_b == camera_signal_divider_b_div_2) begin - counter_camera_b <= 0; - end - else if (in_signal_posedge) begin - counter_camera_b <= counter_camera_b + 1; - end - end - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - counter_camera_c <= 0; - end - else if (counter_camera_c == camera_signal_divider_c_div_2) begin - counter_camera_c <= 0; - end - else if (in_signal_posedge) begin - counter_camera_c <= counter_camera_c + 1; - end - end - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - counter_camera_d <= 0; - end - else if (counter_camera_d == camera_signal_divider_d_div_2) begin - counter_camera_d <= 0; - end - else if (in_signal_posedge) begin - counter_camera_d <= counter_camera_d + 1; - end - end - - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - out_signal_valve <= 0; - end - else if (counter_valve == valve_signal_divider_div_2) begin - out_signal_valve <= !out_signal_valve; - end - end - - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - out_signal_camera_a <= 1; // Please set the camera to posedge trig mode, in case of trig at half period of the first cycle. - end - else if (counter_camera_a == camera_signal_divider_a_div_2) begin - out_signal_camera_a <= !out_signal_camera_a; - end - end - - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - out_signal_camera_b <= 1; // Please set the camera to posedge trig mode, in case of trig at half period of the first cycle. - end - else if (counter_camera_b == camera_signal_divider_b_div_2) begin - out_signal_camera_b <= !out_signal_camera_b; - end - end - - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - out_signal_camera_c <= 1; // Please set the camera to posedge trig mode, in case of trig at half period of the first cycle. - end - else if (counter_camera_c == camera_signal_divider_c_div_2) begin - out_signal_camera_c <= !out_signal_camera_c; - end - end - - always @(posedge sys_clk) begin - if (!rst_n_inter) begin - out_signal_camera_d <= 1; // Please set the camera to posedge trig mode, in case of trig at half period of the first cycle. - end - else if (counter_camera_d == camera_signal_divider_d_div_2) begin - out_signal_camera_d <= !out_signal_camera_d; - end - end - -endmodule \ No newline at end of file diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/xgui/ip_encoder_v1_0.tcl b/hardware/pl_platform/ip_repo/ip_encoder_1.0/xgui/ip_encoder_v1_0.tcl deleted file mode 100644 index 124ff1a..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/xgui/ip_encoder_v1_0.tcl +++ /dev/null @@ -1,56 +0,0 @@ -# Definitional proc to organize widgets for parameters. -proc init_gui { IPINST } { - ipgui::add_param $IPINST -name "Component_Name" - #Adding Page - ipgui::add_page $IPINST -name "Page 0" - - -} - -proc update_PARAM_VALUE.C_S00_AXI_DATA_WIDTH { PARAM_VALUE.C_S00_AXI_DATA_WIDTH } { - # Procedure called to update C_S00_AXI_DATA_WIDTH when any of the dependent parameters in the arguments change -} - -proc validate_PARAM_VALUE.C_S00_AXI_DATA_WIDTH { PARAM_VALUE.C_S00_AXI_DATA_WIDTH } { - # Procedure called to validate C_S00_AXI_DATA_WIDTH - return true -} - -proc update_PARAM_VALUE.C_S00_AXI_ADDR_WIDTH { PARAM_VALUE.C_S00_AXI_ADDR_WIDTH } { - # Procedure called to update C_S00_AXI_ADDR_WIDTH when any of the dependent parameters in the arguments change -} - -proc validate_PARAM_VALUE.C_S00_AXI_ADDR_WIDTH { PARAM_VALUE.C_S00_AXI_ADDR_WIDTH } { - # Procedure called to validate C_S00_AXI_ADDR_WIDTH - return true -} - -proc update_PARAM_VALUE.C_S00_AXI_BASEADDR { PARAM_VALUE.C_S00_AXI_BASEADDR } { - # Procedure called to update C_S00_AXI_BASEADDR when any of the dependent parameters in the arguments change -} - -proc validate_PARAM_VALUE.C_S00_AXI_BASEADDR { PARAM_VALUE.C_S00_AXI_BASEADDR } { - # Procedure called to validate C_S00_AXI_BASEADDR - return true -} - -proc update_PARAM_VALUE.C_S00_AXI_HIGHADDR { PARAM_VALUE.C_S00_AXI_HIGHADDR } { - # Procedure called to update C_S00_AXI_HIGHADDR when any of the dependent parameters in the arguments change -} - -proc validate_PARAM_VALUE.C_S00_AXI_HIGHADDR { PARAM_VALUE.C_S00_AXI_HIGHADDR } { - # Procedure called to validate C_S00_AXI_HIGHADDR - return true -} - - -proc update_MODELPARAM_VALUE.C_S00_AXI_DATA_WIDTH { MODELPARAM_VALUE.C_S00_AXI_DATA_WIDTH PARAM_VALUE.C_S00_AXI_DATA_WIDTH } { - # Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value - set_property value [get_property value ${PARAM_VALUE.C_S00_AXI_DATA_WIDTH}] ${MODELPARAM_VALUE.C_S00_AXI_DATA_WIDTH} -} - -proc update_MODELPARAM_VALUE.C_S00_AXI_ADDR_WIDTH { MODELPARAM_VALUE.C_S00_AXI_ADDR_WIDTH PARAM_VALUE.C_S00_AXI_ADDR_WIDTH } { - # Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value - set_property value [get_property value ${PARAM_VALUE.C_S00_AXI_ADDR_WIDTH}] ${MODELPARAM_VALUE.C_S00_AXI_ADDR_WIDTH} -} - diff --git a/hardware/pl_platform/ip_repo/ip_encoder_1.0/xgui/ip_encoder_v1_1.tcl b/hardware/pl_platform/ip_repo/ip_encoder_1.0/xgui/ip_encoder_v1_1.tcl deleted file mode 100644 index a8982ff..0000000 --- a/hardware/pl_platform/ip_repo/ip_encoder_1.0/xgui/ip_encoder_v1_1.tcl +++ /dev/null @@ -1,53 +0,0 @@ -# Definitional proc to organize widgets for parameters. -proc init_gui { IPINST } { - ipgui::add_param $IPINST -name "Component_Name" - -} - -proc update_PARAM_VALUE.C_S00_AXI_DATA_WIDTH { PARAM_VALUE.C_S00_AXI_DATA_WIDTH } { - # Procedure called to update C_S00_AXI_DATA_WIDTH when any of the dependent parameters in the arguments change -} - -proc validate_PARAM_VALUE.C_S00_AXI_DATA_WIDTH { PARAM_VALUE.C_S00_AXI_DATA_WIDTH } { - # Procedure called to validate C_S00_AXI_DATA_WIDTH - return true -} - -proc update_PARAM_VALUE.C_S00_AXI_ADDR_WIDTH { PARAM_VALUE.C_S00_AXI_ADDR_WIDTH } { - # Procedure called to update C_S00_AXI_ADDR_WIDTH when any of the dependent parameters in the arguments change -} - -proc validate_PARAM_VALUE.C_S00_AXI_ADDR_WIDTH { PARAM_VALUE.C_S00_AXI_ADDR_WIDTH } { - # Procedure called to validate C_S00_AXI_ADDR_WIDTH - return true -} - -proc update_PARAM_VALUE.C_S00_AXI_BASEADDR { PARAM_VALUE.C_S00_AXI_BASEADDR } { - # Procedure called to update C_S00_AXI_BASEADDR when any of the dependent parameters in the arguments change -} - -proc validate_PARAM_VALUE.C_S00_AXI_BASEADDR { PARAM_VALUE.C_S00_AXI_BASEADDR } { - # Procedure called to validate C_S00_AXI_BASEADDR - return true -} - -proc update_PARAM_VALUE.C_S00_AXI_HIGHADDR { PARAM_VALUE.C_S00_AXI_HIGHADDR } { - # Procedure called to update C_S00_AXI_HIGHADDR when any of the dependent parameters in the arguments change -} - -proc validate_PARAM_VALUE.C_S00_AXI_HIGHADDR { PARAM_VALUE.C_S00_AXI_HIGHADDR } { - # Procedure called to validate C_S00_AXI_HIGHADDR - return true -} - - -proc update_MODELPARAM_VALUE.C_S00_AXI_DATA_WIDTH { MODELPARAM_VALUE.C_S00_AXI_DATA_WIDTH PARAM_VALUE.C_S00_AXI_DATA_WIDTH } { - # Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value - set_property value [get_property value ${PARAM_VALUE.C_S00_AXI_DATA_WIDTH}] ${MODELPARAM_VALUE.C_S00_AXI_DATA_WIDTH} -} - -proc update_MODELPARAM_VALUE.C_S00_AXI_ADDR_WIDTH { MODELPARAM_VALUE.C_S00_AXI_ADDR_WIDTH PARAM_VALUE.C_S00_AXI_ADDR_WIDTH } { - # Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value - set_property value [get_property value ${PARAM_VALUE.C_S00_AXI_ADDR_WIDTH}] ${MODELPARAM_VALUE.C_S00_AXI_ADDR_WIDTH} -} - diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/bd/bd.tcl b/hardware/pl_platform/ip_repo/ip_fan_1.0/bd/bd.tcl deleted file mode 100644 index 4804aeb..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/bd/bd.tcl +++ /dev/null @@ -1,86 +0,0 @@ - -proc init { cellpath otherInfo } { - - set cell_handle [get_bd_cells $cellpath] - set all_busif [get_bd_intf_pins $cellpath/*] - set axi_standard_param_list [list ID_WIDTH AWUSER_WIDTH ARUSER_WIDTH WUSER_WIDTH RUSER_WIDTH BUSER_WIDTH] - set full_sbusif_list [list ] - - foreach busif $all_busif { - if { [string equal -nocase [get_property MODE $busif] "slave"] == 1 } { - set busif_param_list [list] - set busif_name [get_property NAME $busif] - if { [lsearch -exact -nocase $full_sbusif_list $busif_name ] == -1 } { - continue - } - foreach tparam $axi_standard_param_list { - lappend busif_param_list "C_${busif_name}_${tparam}" - } - bd::mark_propagate_only $cell_handle $busif_param_list - } - } -} - - -proc pre_propagate {cellpath otherInfo } { - - set cell_handle [get_bd_cells $cellpath] - set all_busif [get_bd_intf_pins $cellpath/*] - set axi_standard_param_list [list ID_WIDTH AWUSER_WIDTH ARUSER_WIDTH WUSER_WIDTH RUSER_WIDTH BUSER_WIDTH] - - foreach busif $all_busif { - if { [string equal -nocase [get_property CONFIG.PROTOCOL $busif] "AXI4"] != 1 } { - continue - } - if { [string equal -nocase [get_property MODE $busif] "master"] != 1 } { - continue - } - - set busif_name [get_property NAME $busif] - foreach tparam $axi_standard_param_list { - set busif_param_name "C_${busif_name}_${tparam}" - - set val_on_cell_intf_pin [get_property CONFIG.${tparam} $busif] - set val_on_cell [get_property CONFIG.${busif_param_name} $cell_handle] - - if { [string equal -nocase $val_on_cell_intf_pin $val_on_cell] != 1 } { - if { $val_on_cell != "" } { - set_property CONFIG.${tparam} $val_on_cell $busif - } - } - } - } -} - - -proc propagate {cellpath otherInfo } { - - set cell_handle [get_bd_cells $cellpath] - set all_busif [get_bd_intf_pins $cellpath/*] - set axi_standard_param_list [list ID_WIDTH AWUSER_WIDTH ARUSER_WIDTH WUSER_WIDTH RUSER_WIDTH BUSER_WIDTH] - - foreach busif $all_busif { - if { [string equal -nocase [get_property CONFIG.PROTOCOL $busif] "AXI4"] != 1 } { - continue - } - if { [string equal -nocase [get_property MODE $busif] "slave"] != 1 } { - continue - } - - set busif_name [get_property NAME $busif] - foreach tparam $axi_standard_param_list { - set busif_param_name "C_${busif_name}_${tparam}" - - set val_on_cell_intf_pin [get_property CONFIG.${tparam} $busif] - set val_on_cell [get_property CONFIG.${busif_param_name} $cell_handle] - - if { [string equal -nocase $val_on_cell_intf_pin $val_on_cell] != 1 } { - #override property of bd_interface_net to bd_cell -- only for slaves. May check for supported values.. - if { $val_on_cell_intf_pin != "" } { - set_property CONFIG.${busif_param_name} $val_on_cell_intf_pin $cell_handle - } - } - } - } -} - diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/component.xml b/hardware/pl_platform/ip_repo/ip_fan_1.0/component.xml deleted file mode 100644 index 173f27d..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/component.xml +++ /dev/null @@ -1,993 +0,0 @@ - - - user.org - user - ip_fan - 1.0 - - - S00_AXI - - - - - - - - - AWADDR - - - s00_axi_awaddr - - - - - AWPROT - - - s00_axi_awprot - - - - - AWVALID - - - s00_axi_awvalid - - - - - AWREADY - - - s00_axi_awready - - - - - WDATA - - - s00_axi_wdata - - - - - WSTRB - - - s00_axi_wstrb - - - - - WVALID - - - s00_axi_wvalid - - - - - WREADY - - - s00_axi_wready - - - - - BRESP - - - s00_axi_bresp - - - - - BVALID - - - s00_axi_bvalid - - - - - BREADY - - - s00_axi_bready - - - - - ARADDR - - - s00_axi_araddr - - - - - ARPROT - - - s00_axi_arprot - - - - - ARVALID - - - s00_axi_arvalid - - - - - ARREADY - - - s00_axi_arready - - - - - RDATA - - - s00_axi_rdata - - - - - RRESP - - - s00_axi_rresp - - - - - RVALID - - - s00_axi_rvalid - - - - - RREADY - - - s00_axi_rready - - - - - - WIZ_DATA_WIDTH - 32 - - - WIZ_NUM_REG - 4 - - - SUPPORTS_NARROW_BURST - 0 - - - - - S00_AXI_RST - - - - - - - RST - - - s00_axi_aresetn - - - - - - POLARITY - ACTIVE_LOW - - - - - S00_AXI_CLK - - - - - - - CLK - - - s00_axi_aclk - - - - - - ASSOCIATED_BUSIF - S00_AXI - - - ASSOCIATED_RESET - s00_axi_aresetn - - - - - - - S00_AXI - - S00_AXI_reg - 0 - 4096 - 32 - register - - - OFFSET_BASE_PARAM - C_S00_AXI_BASEADDR - - - OFFSET_HIGH_PARAM - C_S00_AXI_HIGHADDR - - - - - - - - - xilinx_verilogsynthesis - Verilog Synthesis - verilogSource:vivado.xilinx.com:synthesis - verilog - ip_fan_v1_0 - - xilinx_verilogsynthesis_view_fileset - - - - viewChecksum - 728a76ba - - - - - xilinx_verilogbehavioralsimulation - Verilog Simulation - verilogSource:vivado.xilinx.com:simulation - verilog - ip_fan_v1_0 - - xilinx_verilogbehavioralsimulation_view_fileset - - - - viewChecksum - 728a76ba - - - - - xilinx_softwaredriver - Software Driver - :vivado.xilinx.com:sw.driver - - xilinx_softwaredriver_view_fileset - - - - viewChecksum - 33320685 - - - - - xilinx_xpgui - UI Layout - :vivado.xilinx.com:xgui.ui - - xilinx_xpgui_view_fileset - - - - viewChecksum - 0e00759d - - - - - bd_tcl - Block Diagram - :vivado.xilinx.com:block.diagram - - bd_tcl_view_fileset - - - - viewChecksum - 45a2f450 - - - - - - - fan - - out - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_aclk - - in - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_aresetn - - in - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_awaddr - - in - - 3 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_awprot - - in - - 2 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_awvalid - - in - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_awready - - out - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_wdata - - in - - 31 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_wstrb - - in - - 3 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_wvalid - - in - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_wready - - out - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_bresp - - out - - 1 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_bvalid - - out - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_bready - - in - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_araddr - - in - - 3 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_arprot - - in - - 2 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_arvalid - - in - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_arready - - out - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_rdata - - out - - 31 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_rresp - - out - - 1 - 0 - - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_rvalid - - out - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - s00_axi_rready - - in - - - wire - xilinx_verilogsynthesis - xilinx_verilogbehavioralsimulation - - - - - - - - C_S00_AXI_DATA_WIDTH - C S00 AXI DATA WIDTH - Width of S_AXI data bus - 32 - - - C_S00_AXI_ADDR_WIDTH - C S00 AXI ADDR WIDTH - Width of S_AXI address bus - 4 - - - FAN_PWM_FREQ - Fan Pwm Freq - 10 - - - SYS_CLK_FREQ - Sys Clk Freq - 200000000 - - - - - - choice_list_6fc15197 - 32 - - - choice_list_9d8b0d81 - ACTIVE_HIGH - ACTIVE_LOW - - - choice_pairs_ce1226b1 - 1 - 0 - - - - - xilinx_verilogsynthesis_view_fileset - - hdl/ip_fan_v1_0_S00_AXI.v - verilogSource - - - hdl/ip_fan_v1_0.v - verilogSource - CHECKSUM_686eeef6 - - - - xilinx_verilogbehavioralsimulation_view_fileset - - hdl/ip_fan_v1_0_S00_AXI.v - verilogSource - - - hdl/ip_fan_v1_0.v - verilogSource - - - - xilinx_softwaredriver_view_fileset - - drivers/ip_fan_v1_0/data/ip_fan.mdd - mdd - driver_mdd - - - drivers/ip_fan_v1_0/data/ip_fan.tcl - tclSource - driver_tcl - - - drivers/ip_fan_v1_0/src/Makefile - driver_src - - - drivers/ip_fan_v1_0/src/ip_fan.h - cSource - driver_src - - - drivers/ip_fan_v1_0/src/ip_fan.c - cSource - driver_src - - - drivers/ip_fan_v1_0/src/ip_fan_selftest.c - cSource - driver_src - - - - xilinx_xpgui_view_fileset - - xgui/ip_fan_v1_0.tcl - tclSource - CHECKSUM_0e00759d - XGUI_VERSION_2 - - - - bd_tcl_view_fileset - - bd/bd.tcl - tclSource - - - - ip for controlling fan - - - C_S00_AXI_DATA_WIDTH - C S00 AXI DATA WIDTH - Width of S_AXI data bus - 32 - - - - false - - - - - - C_S00_AXI_ADDR_WIDTH - C S00 AXI ADDR WIDTH - Width of S_AXI address bus - 4 - - - - false - - - - - - C_S00_AXI_BASEADDR - C S00 AXI BASEADDR - 0xFFFFFFFF - - - - false - - - - - - C_S00_AXI_HIGHADDR - C S00 AXI HIGHADDR - 0x00000000 - - - - false - - - - - - Component_Name - ip_fan_v1_0 - - - FAN_PWM_FREQ - FAN_PWM_FREQ (HZ) - 10 - - - SYS_CLK_FREQ - SYS_CLK_FREQ (HZ) - 200000000 - - - - - - zynq - qzynq - azynq - - - AXI_Peripheral - - ip_fan_v1.0 - 13 - 2022-07-18T09:29:45Z - - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - /home/miaow/zynq/ip_repo/ip_fan_1.0 - - - - 2022.1 - - - - - - - - - diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/data/ip_fan.mdd b/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/data/ip_fan.mdd deleted file mode 100644 index 0f8a4a3..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/data/ip_fan.mdd +++ /dev/null @@ -1,10 +0,0 @@ - - -OPTION psf_version = 2.1; - -BEGIN DRIVER ip_fan - OPTION supported_peripherals = (ip_fan); - OPTION copyfiles = all; - OPTION VERSION = 1.0; - OPTION NAME = ip_fan; -END DRIVER diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/data/ip_fan.tcl b/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/data/ip_fan.tcl deleted file mode 100644 index 437a934..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/data/ip_fan.tcl +++ /dev/null @@ -1,5 +0,0 @@ - - -proc generate {drv_handle} { - xdefine_include_file $drv_handle "xparameters.h" "ip_fan" "NUM_INSTANCES" "DEVICE_ID" "C_S00_AXI_BASEADDR" "C_S00_AXI_HIGHADDR" -} diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/src/Makefile b/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/src/Makefile deleted file mode 100644 index 87f6d25..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/src/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -COMPILER= -ARCHIVER= -CP=cp -COMPILER_FLAGS= -EXTRA_COMPILER_FLAGS= -LIB=libxil.a - -RELEASEDIR=../../../lib -INCLUDEDIR=../../../include -INCLUDES=-I./. -I${INCLUDEDIR} - -INCLUDEFILES=*.h -LIBSOURCES=*.c -OUTS = *.o - -libs: - echo "Compiling ip_fan..." - $(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $(LIBSOURCES) - $(ARCHIVER) -r ${RELEASEDIR}/${LIB} ${OUTS} - make clean - -include: - ${CP} $(INCLUDEFILES) $(INCLUDEDIR) - -clean: - rm -rf ${OUTS} diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/src/ip_fan.c b/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/src/ip_fan.c deleted file mode 100644 index cc2d5a1..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/src/ip_fan.c +++ /dev/null @@ -1,6 +0,0 @@ - - -/***************************** Include Files *******************************/ -#include "ip_fan.h" - -/************************** Function Definitions ***************************/ diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/src/ip_fan.h b/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/src/ip_fan.h deleted file mode 100644 index 94a8b77..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/src/ip_fan.h +++ /dev/null @@ -1,79 +0,0 @@ - -#ifndef IP_FAN_H -#define IP_FAN_H - - -/****************** Include Files ********************/ -#include "xil_types.h" -#include "xstatus.h" - -#define IP_FAN_S00_AXI_SLV_REG0_OFFSET 0 -#define IP_FAN_S00_AXI_SLV_REG1_OFFSET 4 -#define IP_FAN_S00_AXI_SLV_REG2_OFFSET 8 -#define IP_FAN_S00_AXI_SLV_REG3_OFFSET 12 - - -/**************************** Type Definitions *****************************/ -/** - * - * Write a value to a IP_FAN register. A 32 bit write is performed. - * If the component is implemented in a smaller width, only the least - * significant data is written. - * - * @param BaseAddress is the base address of the IP_FANdevice. - * @param RegOffset is the register offset from the base to write to. - * @param Data is the data written to the register. - * - * @return None. - * - * @note - * C-style signature: - * void IP_FAN_mWriteReg(u32 BaseAddress, unsigned RegOffset, u32 Data) - * - */ -#define IP_FAN_mWriteReg(BaseAddress, RegOffset, Data) \ - Xil_Out32((BaseAddress) + (RegOffset), (u32)(Data)) - -/** - * - * Read a value from a IP_FAN register. A 32 bit read is performed. - * If the component is implemented in a smaller width, only the least - * significant data is read from the register. The most significant data - * will be read as 0. - * - * @param BaseAddress is the base address of the IP_FAN device. - * @param RegOffset is the register offset from the base to write to. - * - * @return Data is the data from the register. - * - * @note - * C-style signature: - * u32 IP_FAN_mReadReg(u32 BaseAddress, unsigned RegOffset) - * - */ -#define IP_FAN_mReadReg(BaseAddress, RegOffset) \ - Xil_In32((BaseAddress) + (RegOffset)) - -/************************** Function Prototypes ****************************/ -/** - * - * Run a self-test on the driver/device. Note this may be a destructive test if - * resets of the device are performed. - * - * If the hardware system is not built correctly, this function may never - * return to the caller. - * - * @param baseaddr_p is the base address of the IP_FAN instance to be worked on. - * - * @return - * - * - XST_SUCCESS if all self-test code passed - * - XST_FAILURE if any self-test code failed - * - * @note Caching must be turned off for this function to work. - * @note Self test may fail if data memory and device are not on the same bus. - * - */ -XStatus IP_FAN_Reg_SelfTest(void * baseaddr_p); - -#endif // IP_FAN_H diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/src/ip_fan_selftest.c b/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/src/ip_fan_selftest.c deleted file mode 100644 index 682c8bf..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/drivers/ip_fan_v1_0/src/ip_fan_selftest.c +++ /dev/null @@ -1,60 +0,0 @@ - -/***************************** Include Files *******************************/ -#include "ip_fan.h" -#include "xparameters.h" -#include "stdio.h" -#include "xil_io.h" - -/************************** Constant Definitions ***************************/ -#define READ_WRITE_MUL_FACTOR 0x10 - -/************************** Function Definitions ***************************/ -/** - * - * Run a self-test on the driver/device. Note this may be a destructive test if - * resets of the device are performed. - * - * If the hardware system is not built correctly, this function may never - * return to the caller. - * - * @param baseaddr_p is the base address of the IP_FANinstance to be worked on. - * - * @return - * - * - XST_SUCCESS if all self-test code passed - * - XST_FAILURE if any self-test code failed - * - * @note Caching must be turned off for this function to work. - * @note Self test may fail if data memory and device are not on the same bus. - * - */ -XStatus IP_FAN_Reg_SelfTest(void * baseaddr_p) -{ - u32 baseaddr; - int write_loop_index; - int read_loop_index; - int Index; - - baseaddr = (u32) baseaddr_p; - - xil_printf("******************************\n\r"); - xil_printf("* User Peripheral Self Test\n\r"); - xil_printf("******************************\n\n\r"); - - /* - * Write to user logic slave module register(s) and read back - */ - xil_printf("User logic slave module test...\n\r"); - - for (write_loop_index = 0 ; write_loop_index < 4; write_loop_index++) - IP_FAN_mWriteReg (baseaddr, write_loop_index*4, (write_loop_index+1)*READ_WRITE_MUL_FACTOR); - for (read_loop_index = 0 ; read_loop_index < 4; read_loop_index++) - if ( IP_FAN_mReadReg (baseaddr, read_loop_index*4) != (read_loop_index+1)*READ_WRITE_MUL_FACTOR){ - xil_printf ("Error reading register value at address %x\n", (int)baseaddr + read_loop_index*4); - return XST_FAILURE; - } - - xil_printf(" - slave register write/read passed\n\n\r"); - - return XST_SUCCESS; -} diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/example_designs/bfm_design/design.tcl b/hardware/pl_platform/ip_repo/ip_fan_1.0/example_designs/bfm_design/design.tcl deleted file mode 100644 index 8a5abf6..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/example_designs/bfm_design/design.tcl +++ /dev/null @@ -1,88 +0,0 @@ -proc create_ipi_design { offsetfile design_name } { - create_bd_design $design_name - open_bd_design $design_name - - # Create Clock and Reset Ports - set ACLK [ create_bd_port -dir I -type clk ACLK ] - set_property -dict [ list CONFIG.FREQ_HZ {100000000} CONFIG.PHASE {0.000} CONFIG.CLK_DOMAIN "${design_name}_ACLK" ] $ACLK - set ARESETN [ create_bd_port -dir I -type rst ARESETN ] - set_property -dict [ list CONFIG.POLARITY {ACTIVE_LOW} ] $ARESETN - set_property CONFIG.ASSOCIATED_RESET ARESETN $ACLK - - # Create instance: ip_fan_0, and set properties - set ip_fan_0 [ create_bd_cell -type ip -vlnv user.org:user:ip_fan:1.0 ip_fan_0] - - # Create instance: master_0, and set properties - set master_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_vip master_0] - set_property -dict [ list CONFIG.PROTOCOL {AXI4LITE} CONFIG.INTERFACE_MODE {MASTER} ] $master_0 - - # Create interface connections - connect_bd_intf_net [get_bd_intf_pins master_0/M_AXI ] [get_bd_intf_pins ip_fan_0/S00_AXI] - - # Create port connections - connect_bd_net -net aclk_net [get_bd_ports ACLK] [get_bd_pins master_0/ACLK] [get_bd_pins ip_fan_0/S00_AXI_ACLK] - connect_bd_net -net aresetn_net [get_bd_ports ARESETN] [get_bd_pins master_0/ARESETN] [get_bd_pins ip_fan_0/S00_AXI_ARESETN] -set_property target_simulator XSim [current_project] -set_property -name {xsim.simulate.runtime} -value {100ms} -objects [get_filesets sim_1] - - # Auto assign address - assign_bd_address - - # Copy all address to interface_address.vh file - set bd_path [file dirname [get_property NAME [get_files ${design_name}.bd]]] - upvar 1 $offsetfile offset_file - set offset_file "${bd_path}/ip_fan_v1_0_tb_include.svh" - set fp [open $offset_file "w"] - puts $fp "`ifndef ip_fan_v1_0_tb_include_vh_" - puts $fp "`define ip_fan_v1_0_tb_include_vh_\n" - puts $fp "//Configuration current bd names" - puts $fp "`define BD_NAME ${design_name}" - puts $fp "`define BD_INST_NAME ${design_name}_i" - puts $fp "`define BD_WRAPPER ${design_name}_wrapper\n" - puts $fp "//Configuration address parameters" - - puts $fp "`endif" - close $fp -} - -set ip_path [file dirname [file normalize [get_property XML_FILE_NAME [ipx::get_cores user.org:user:ip_fan:1.0]]]] -set test_bench_file ${ip_path}/example_designs/bfm_design/ip_fan_v1_0_tb.sv -set interface_address_vh_file "" - -# Set IP Repository and Update IP Catalogue -set repo_paths [get_property ip_repo_paths [current_fileset]] -if { [lsearch -exact -nocase $repo_paths $ip_path ] == -1 } { - set_property ip_repo_paths "$ip_path [get_property ip_repo_paths [current_fileset]]" [current_fileset] - update_ip_catalog -} - -set design_name "" -set all_bd {} -set all_bd_files [get_files *.bd -quiet] -foreach file $all_bd_files { -set file_name [string range $file [expr {[string last "/" $file] + 1}] end] -set bd_name [string range $file_name 0 [expr {[string last "." $file_name] -1}]] -lappend all_bd $bd_name -} - -for { set i 1 } { 1 } { incr i } { - set design_name "ip_fan_v1_0_bfm_${i}" - if { [lsearch -exact -nocase $all_bd $design_name ] == -1 } { - break - } -} - -create_ipi_design interface_address_vh_file ${design_name} -validate_bd_design - -set wrapper_file [make_wrapper -files [get_files ${design_name}.bd] -top -force] -import_files -force -norecurse $wrapper_file - -set_property SOURCE_SET sources_1 [get_filesets sim_1] -import_files -fileset sim_1 -norecurse -force $test_bench_file -remove_files -quiet -fileset sim_1 ip_fan_v1_0_tb_include.vh -import_files -fileset sim_1 -norecurse -force $interface_address_vh_file -set_property top ip_fan_v1_0_tb [get_filesets sim_1] -set_property top_lib {} [get_filesets sim_1] -set_property top_file {} [get_filesets sim_1] -launch_simulation -simset sim_1 -mode behavioral diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/example_designs/bfm_design/ip_fan_v1_0_tb.sv b/hardware/pl_platform/ip_repo/ip_fan_1.0/example_designs/bfm_design/ip_fan_v1_0_tb.sv deleted file mode 100644 index 6002760..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/example_designs/bfm_design/ip_fan_v1_0_tb.sv +++ /dev/null @@ -1,197 +0,0 @@ - -`timescale 1ns / 1ps -`include "ip_fan_v1_0_tb_include.svh" - -import axi_vip_pkg::*; -import ip_fan_v1_0_bfm_1_master_0_0_pkg::*; - -module ip_fan_v1_0_tb(); - - -xil_axi_uint error_cnt = 0; -xil_axi_uint comparison_cnt = 0; -axi_transaction wr_transaction; -axi_transaction rd_transaction; -axi_monitor_transaction mst_monitor_transaction; -axi_monitor_transaction master_moniter_transaction_queue[$]; -xil_axi_uint master_moniter_transaction_queue_size =0; -axi_monitor_transaction mst_scb_transaction; -axi_monitor_transaction passthrough_monitor_transaction; -axi_monitor_transaction passthrough_master_moniter_transaction_queue[$]; -xil_axi_uint passthrough_master_moniter_transaction_queue_size =0; -axi_monitor_transaction passthrough_mst_scb_transaction; -axi_monitor_transaction passthrough_slave_moniter_transaction_queue[$]; -xil_axi_uint passthrough_slave_moniter_transaction_queue_size =0; -axi_monitor_transaction passthrough_slv_scb_transaction; -axi_monitor_transaction slv_monitor_transaction; -axi_monitor_transaction slave_moniter_transaction_queue[$]; -xil_axi_uint slave_moniter_transaction_queue_size =0; -axi_monitor_transaction slv_scb_transaction; -xil_axi_uint mst_agent_verbosity = 0; -xil_axi_uint slv_agent_verbosity = 0; -xil_axi_uint passthrough_agent_verbosity = 0; -bit clock; -bit reset; -integer result_slave; -bit [31:0] S00_AXI_test_data[3:0]; - localparam LC_AXI_BURST_LENGTH = 8; - localparam LC_AXI_DATA_WIDTH = 32; -task automatic COMPARE_DATA; - input [(LC_AXI_BURST_LENGTH * LC_AXI_DATA_WIDTH)-1:0]expected; - input [(LC_AXI_BURST_LENGTH * LC_AXI_DATA_WIDTH)-1:0]actual; - begin - if (expected === 'hx || actual === 'hx) begin - $display("TESTBENCH ERROR! COMPARE_DATA cannot be performed with an expected or actual vector that is all 'x'!"); - result_slave = 0; $stop; - end - if (actual != expected) begin - $display("TESTBENCH ERROR! Data expected is not equal to actual.", " expected = 0x%h",expected, " actual = 0x%h",actual); - result_slave = 0; - $stop; - end - else - begin - $display("TESTBENCH Passed! Data expected is equal to actual.", - " expected = 0x%h",expected, " actual = 0x%h",actual); - end - end -endtask -integer i; -integer j; -xil_axi_uint trans_cnt_before_switch = 48; -xil_axi_uint passthrough_cmd_switch_cnt = 0; -event passthrough_mastermode_start_event; -event passthrough_mastermode_end_event; -event passthrough_slavemode_end_event; -xil_axi_uint mtestID; -xil_axi_ulong mtestADDR; -xil_axi_len_t mtestBurstLength; -xil_axi_size_t mtestDataSize; -xil_axi_burst_t mtestBurstType; -xil_axi_lock_t mtestLOCK; -xil_axi_cache_t mtestCacheType = 0; -xil_axi_prot_t mtestProtectionType = 3'b000; -xil_axi_region_t mtestRegion = 4'b000; -xil_axi_qos_t mtestQOS = 4'b000; -xil_axi_data_beat dbeat; -xil_axi_data_beat [255:0] mtestWUSER; -xil_axi_data_beat mtestAWUSER = 'h0; -xil_axi_data_beat mtestARUSER = 0; -xil_axi_data_beat [255:0] mtestRUSER; -xil_axi_uint mtestBUSER = 0; -xil_axi_resp_t mtestBresp; -xil_axi_resp_t[255:0] mtestRresp; -bit [63:0] mtestWDataL; -bit [63:0] mtestRDataL; -axi_transaction pss_wr_transaction; -axi_transaction pss_rd_transaction; -axi_transaction reactive_transaction; -axi_transaction rd_payload_transaction; -axi_transaction wr_rand; -axi_transaction rd_rand; -axi_transaction wr_reactive; -axi_transaction rd_reactive; -axi_transaction wr_reactive2; -axi_transaction rd_reactive2; -axi_ready_gen bready_gen; -axi_ready_gen rready_gen; -axi_ready_gen awready_gen; -axi_ready_gen wready_gen; -axi_ready_gen arready_gen; -axi_ready_gen bready_gen2; -axi_ready_gen rready_gen2; -axi_ready_gen awready_gen2; -axi_ready_gen wready_gen2; -axi_ready_gen arready_gen2; -xil_axi_payload_byte data_mem[xil_axi_ulong]; -ip_fan_v1_0_bfm_1_master_0_0_mst_t mst_agent_0; - - `BD_WRAPPER DUT( - .ARESETN(reset), - .ACLK(clock) - ); - -initial begin - mst_agent_0 = new("master vip agent",DUT.`BD_INST_NAME.master_0.inst.IF);//ms - mst_agent_0.vif_proxy.set_dummy_drive_type(XIL_AXI_VIF_DRIVE_NONE); - mst_agent_0.set_agent_tag("Master VIP"); - mst_agent_0.set_verbosity(mst_agent_verbosity); - mst_agent_0.start_master(); - $timeformat (-12, 1, " ps", 1); - end - initial begin - reset <= 1'b0; - #200ns; - reset <= 1'b1; - repeat (5) @(negedge clock); - end - always #5 clock <= ~clock; - initial begin - S_AXI_TEST ( ); - - #1ns; - $finish; - end -task automatic S_AXI_TEST; -begin -#1; - $display("Sequential write transfers example similar to AXI BFM WRITE_BURST method starts"); - mtestID = 0; - mtestADDR = 64'h00000000; - mtestBurstLength = 0; - mtestDataSize = xil_axi_size_t'(xil_clog2(32/8)); - mtestBurstType = XIL_AXI_BURST_TYPE_INCR; - mtestLOCK = XIL_AXI_ALOCK_NOLOCK; - mtestCacheType = 0; - mtestProtectionType = 0; - mtestRegion = 0; - mtestQOS = 0; - result_slave = 1; - mtestWDataL[31:0] = 32'h00000001; - for(int i = 0; i < 4;i++) begin - S00_AXI_test_data[i] <= mtestWDataL[31:0]; - mst_agent_0.AXI4LITE_WRITE_BURST( - mtestADDR, - mtestProtectionType, - mtestWDataL, - mtestBresp - ); - mtestWDataL[31:0] = mtestWDataL[31:0] + 1; - mtestADDR = mtestADDR + 64'h4; - end - $display("Sequential write transfers example similar to AXI BFM WRITE_BURST method completes"); - $display("Sequential read transfers example similar to AXI BFM READ_BURST method starts"); - mtestID = 0; - mtestADDR = 64'h00000000; - mtestBurstLength = 0; - mtestDataSize = xil_axi_size_t'(xil_clog2(32/8)); - mtestBurstType = XIL_AXI_BURST_TYPE_INCR; - mtestLOCK = XIL_AXI_ALOCK_NOLOCK; - mtestCacheType = 0; - mtestProtectionType = 0; - mtestRegion = 0; - mtestQOS = 0; - for(int i = 0; i < 4;i++) begin - mst_agent_0.AXI4LITE_READ_BURST( - mtestADDR, - mtestProtectionType, - mtestRDataL, - mtestRresp - ); - mtestADDR = mtestADDR + 64'h4; - COMPARE_DATA(S00_AXI_test_data[i],mtestRDataL); - end - $display("Sequential read transfers example similar to AXI BFM READ_BURST method completes"); - $display("Sequential read transfers example similar to AXI VIP READ_BURST method completes"); - $display("---------------------------------------------------------"); - $display("EXAMPLE TEST S00_AXI: PTGEN_TEST_FINISHED!"); - if ( result_slave ) begin - $display("PTGEN_TEST: PASSED!"); - end else begin - $display("PTGEN_TEST: FAILED!"); - end - $display("---------------------------------------------------------"); - end -endtask - -endmodule diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/example_designs/debug_hw_design/design.tcl b/hardware/pl_platform/ip_repo/ip_fan_1.0/example_designs/debug_hw_design/design.tcl deleted file mode 100644 index 420cb86..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/example_designs/debug_hw_design/design.tcl +++ /dev/null @@ -1,118 +0,0 @@ - -proc create_ipi_design { offsetfile design_name } { - - create_bd_design $design_name - open_bd_design $design_name - - # Create and configure Clock/Reset - create_bd_cell -type ip -vlnv xilinx.com:ip:clk_wiz sys_clk_0 - create_bd_cell -type ip -vlnv xilinx.com:ip:proc_sys_reset sys_reset_0 - - #Constraints will be provided manually while pin planning. - create_bd_port -dir I -type rst reset_rtl - set_property CONFIG.POLARITY [get_property CONFIG.POLARITY [get_bd_pins sys_clk_0/reset]] [get_bd_ports reset_rtl] - connect_bd_net [get_bd_pins sys_reset_0/ext_reset_in] [get_bd_ports reset_rtl] - connect_bd_net [get_bd_ports reset_rtl] [get_bd_pins sys_clk_0/reset] - set external_reset_port reset_rtl - create_bd_port -dir I -type clk clock_rtl - connect_bd_net [get_bd_pins sys_clk_0/clk_in1] [get_bd_ports clock_rtl] - set external_clock_port clock_rtl - - #Avoid IPI DRC, make clock port synchronous to reset - if { $external_clock_port ne "" && $external_reset_port ne "" } { - set_property CONFIG.ASSOCIATED_RESET $external_reset_port [get_bd_ports $external_clock_port] - } - - # Connect other sys_reset pins - connect_bd_net [get_bd_pins sys_reset_0/slowest_sync_clk] [get_bd_pins sys_clk_0/clk_out1] - connect_bd_net [get_bd_pins sys_clk_0/locked] [get_bd_pins sys_reset_0/dcm_locked] - - # Create instance: ip_fan_0, and set properties - set ip_fan_0 [ create_bd_cell -type ip -vlnv user.org:user:ip_fan:1.0 ip_fan_0 ] - - # Create instance: jtag_axi_0, and set properties - set jtag_axi_0 [ create_bd_cell -type ip -vlnv xilinx.com:ip:jtag_axi jtag_axi_0 ] - set_property -dict [list CONFIG.PROTOCOL {0}] [get_bd_cells jtag_axi_0] - connect_bd_net [get_bd_pins jtag_axi_0/aclk] [get_bd_pins sys_clk_0/clk_out1] - connect_bd_net [get_bd_pins jtag_axi_0/aresetn] [get_bd_pins sys_reset_0/peripheral_aresetn] - - # Create instance: axi_peri_interconnect, and set properties - set axi_peri_interconnect [ create_bd_cell -type ip -vlnv xilinx.com:ip:axi_interconnect axi_peri_interconnect ] - connect_bd_net [get_bd_pins axi_peri_interconnect/ACLK] [get_bd_pins sys_clk_0/clk_out1] - connect_bd_net [get_bd_pins axi_peri_interconnect/ARESETN] [get_bd_pins sys_reset_0/interconnect_aresetn] - set_property -dict [ list CONFIG.NUM_SI {1} ] $axi_peri_interconnect - connect_bd_net [get_bd_pins axi_peri_interconnect/S00_ACLK] [get_bd_pins sys_clk_0/clk_out1] - connect_bd_net [get_bd_pins axi_peri_interconnect/S00_ARESETN] [get_bd_pins sys_reset_0/peripheral_aresetn] - connect_bd_intf_net [get_bd_intf_pins jtag_axi_0/M_AXI] [get_bd_intf_pins axi_peri_interconnect/S00_AXI] - - set_property -dict [ list CONFIG.NUM_MI {1} ] $axi_peri_interconnect - connect_bd_net [get_bd_pins axi_peri_interconnect/M00_ACLK] [get_bd_pins sys_clk_0/clk_out1] - connect_bd_net [get_bd_pins axi_peri_interconnect/M00_ARESETN] [get_bd_pins sys_reset_0/peripheral_aresetn] - - # Connect all clock & reset of ip_fan_0 slave interfaces.. - connect_bd_intf_net [get_bd_intf_pins axi_peri_interconnect/M00_AXI] [get_bd_intf_pins ip_fan_0/S00_AXI] - connect_bd_net [get_bd_pins ip_fan_0/s00_axi_aclk] [get_bd_pins sys_clk_0/clk_out1] - connect_bd_net [get_bd_pins ip_fan_0/s00_axi_aresetn] [get_bd_pins sys_reset_0/peripheral_aresetn] - - - # Auto assign address - assign_bd_address - - # Copy all address to ip_fan_v1_0_include.tcl file - set bd_path [get_property DIRECTORY [current_project]]/[current_project].srcs/[current_fileset]/bd - upvar 1 $offsetfile offset_file - set offset_file "${bd_path}/ip_fan_v1_0_include.tcl" - set fp [open $offset_file "w"] - puts $fp "# Configuration address parameters" - - set offset [get_property OFFSET [get_bd_addr_segs /jtag_axi_0/Data/SEG_ip_fan_0_S00_AXI_* ]] - puts $fp "set s00_axi_addr ${offset}" - - close $fp -} - -# Set IP Repository and Update IP Catalogue -set ip_path [file dirname [file normalize [get_property XML_FILE_NAME [ipx::get_cores user.org:user:ip_fan:1.0]]]] -set hw_test_file ${ip_path}/example_designs/debug_hw_design/ip_fan_v1_0_hw_test.tcl - -set repo_paths [get_property ip_repo_paths [current_fileset]] -if { [lsearch -exact -nocase $repo_paths $ip_path ] == -1 } { - set_property ip_repo_paths "$ip_path [get_property ip_repo_paths [current_fileset]]" [current_fileset] - update_ip_catalog -} - -set design_name "" -set all_bd {} -set all_bd_files [get_files *.bd -quiet] -foreach file $all_bd_files { -set file_name [string range $file [expr {[string last "/" $file] + 1}] end] -set bd_name [string range $file_name 0 [expr {[string last "." $file_name] -1}]] -lappend all_bd $bd_name -} - -for { set i 1 } { 1 } { incr i } { - set design_name "ip_fan_v1_0_hw_${i}" - if { [lsearch -exact -nocase $all_bd $design_name ] == -1 } { - break - } -} - -set intf_address_include_file "" -create_ipi_design intf_address_include_file ${design_name} -save_bd_design -validate_bd_design - -set wrapper_file [make_wrapper -files [get_files ${design_name}.bd] -top -force] -import_files -force -norecurse $wrapper_file - -puts "-------------------------------------------------------------------------------------------------" -puts "INFO NEXT STEPS : Until this stage, debug hardware design has been created, " -puts " please perform following steps to test design in targeted board." -puts "1. Generate bitstream" -puts "2. Setup your targeted board, open hardware manager and open new(or existing) hardware target" -puts "3. Download generated bitstream" -puts "4. Run generated hardware test using below command, this invokes basic read/write operation" -puts " to every interface present in the peripheral : xilinx.com:user:myip:1.0" -puts " : source -notrace ${hw_test_file}" -puts "-------------------------------------------------------------------------------------------------" - diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/example_designs/debug_hw_design/ip_fan_v1_0_hw_test.tcl b/hardware/pl_platform/ip_repo/ip_fan_1.0/example_designs/debug_hw_design/ip_fan_v1_0_hw_test.tcl deleted file mode 100644 index 6287e38..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/example_designs/debug_hw_design/ip_fan_v1_0_hw_test.tcl +++ /dev/null @@ -1,45 +0,0 @@ -# Runtime Tcl commands to interact with - ip_fan_v1_0 - -# Sourcing design address info tcl -set bd_path [get_property DIRECTORY [current_project]]/[current_project].srcs/[current_fileset]/bd -source ${bd_path}/ip_fan_v1_0_include.tcl - -# jtag axi master interface hardware name, change as per your design. -set jtag_axi_master hw_axi_1 -set ec 0 - -# hw test script -# Delete all previous axis transactions -if { [llength [get_hw_axi_txns -quiet]] } { - delete_hw_axi_txn [get_hw_axi_txns -quiet] -} - - -# Test all lite slaves. -set wdata_1 abcd1234 - -# Test: S00_AXI -# Create a write transaction at s00_axi_addr address -create_hw_axi_txn w_s00_axi_addr [get_hw_axis $jtag_axi_master] -type write -address $s00_axi_addr -data $wdata_1 -# Create a read transaction at s00_axi_addr address -create_hw_axi_txn r_s00_axi_addr [get_hw_axis $jtag_axi_master] -type read -address $s00_axi_addr -# Initiate transactions -run_hw_axi r_s00_axi_addr -run_hw_axi w_s00_axi_addr -run_hw_axi r_s00_axi_addr -set rdata_tmp [get_property DATA [get_hw_axi_txn r_s00_axi_addr]] -# Compare read data -if { $rdata_tmp == $wdata_1 } { - puts "Data comparison test pass for - S00_AXI" -} else { - puts "Data comparison test fail for - S00_AXI, expected-$wdata_1 actual-$rdata_tmp" - inc ec -} - -# Check error flag -if { $ec == 0 } { - puts "PTGEN_TEST: PASSED!" -} else { - puts "PTGEN_TEST: FAILED!" -} - diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/hdl/ip_fan_v1_0.v b/hardware/pl_platform/ip_repo/ip_fan_1.0/hdl/ip_fan_v1_0.v deleted file mode 100644 index 96ee1e9..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/hdl/ip_fan_v1_0.v +++ /dev/null @@ -1,82 +0,0 @@ - -`timescale 1 ns / 1 ps - - module ip_fan_v1_0 # - ( - // Users to add parameters here - parameter FAN_PWM_FREQ = 10, - parameter SYS_CLK_FREQ = 200_000_000, - // User parameters ends - // Do not modify the parameters beyond this line - - - // Parameters of Axi Slave Bus Interface S00_AXI - parameter integer C_S00_AXI_DATA_WIDTH = 32, - parameter integer C_S00_AXI_ADDR_WIDTH = 4 - ) - ( - // Users to add ports here - output wire fan, - // User ports ends - // Do not modify the ports beyond this line - - - // Ports of Axi Slave Bus Interface S00_AXI - input wire s00_axi_aclk, - input wire s00_axi_aresetn, - input wire [C_S00_AXI_ADDR_WIDTH-1 : 0] s00_axi_awaddr, - input wire [2 : 0] s00_axi_awprot, - input wire s00_axi_awvalid, - output wire s00_axi_awready, - input wire [C_S00_AXI_DATA_WIDTH-1 : 0] s00_axi_wdata, - input wire [(C_S00_AXI_DATA_WIDTH/8)-1 : 0] s00_axi_wstrb, - input wire s00_axi_wvalid, - output wire s00_axi_wready, - output wire [1 : 0] s00_axi_bresp, - output wire s00_axi_bvalid, - input wire s00_axi_bready, - input wire [C_S00_AXI_ADDR_WIDTH-1 : 0] s00_axi_araddr, - input wire [2 : 0] s00_axi_arprot, - input wire s00_axi_arvalid, - output wire s00_axi_arready, - output wire [C_S00_AXI_DATA_WIDTH-1 : 0] s00_axi_rdata, - output wire [1 : 0] s00_axi_rresp, - output wire s00_axi_rvalid, - input wire s00_axi_rready - ); -// Instantiation of Axi Bus Interface S00_AXI - ip_fan_v1_0_S00_AXI # ( - .FAN_PWM_FREQ(FAN_PWM_FREQ), - .SYS_CLK_FREQ(SYS_CLK_FREQ), - .C_S_AXI_DATA_WIDTH(C_S00_AXI_DATA_WIDTH), - .C_S_AXI_ADDR_WIDTH(C_S00_AXI_ADDR_WIDTH) - ) ip_fan_v1_0_S00_AXI_inst ( - .fan(fan), - .S_AXI_ACLK(s00_axi_aclk), - .S_AXI_ARESETN(s00_axi_aresetn), - .S_AXI_AWADDR(s00_axi_awaddr), - .S_AXI_AWPROT(s00_axi_awprot), - .S_AXI_AWVALID(s00_axi_awvalid), - .S_AXI_AWREADY(s00_axi_awready), - .S_AXI_WDATA(s00_axi_wdata), - .S_AXI_WSTRB(s00_axi_wstrb), - .S_AXI_WVALID(s00_axi_wvalid), - .S_AXI_WREADY(s00_axi_wready), - .S_AXI_BRESP(s00_axi_bresp), - .S_AXI_BVALID(s00_axi_bvalid), - .S_AXI_BREADY(s00_axi_bready), - .S_AXI_ARADDR(s00_axi_araddr), - .S_AXI_ARPROT(s00_axi_arprot), - .S_AXI_ARVALID(s00_axi_arvalid), - .S_AXI_ARREADY(s00_axi_arready), - .S_AXI_RDATA(s00_axi_rdata), - .S_AXI_RRESP(s00_axi_rresp), - .S_AXI_RVALID(s00_axi_rvalid), - .S_AXI_RREADY(s00_axi_rready) - ); - - // Add user logic here - - // User logic ends - - endmodule diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/hdl/ip_fan_v1_0_S00_AXI.v b/hardware/pl_platform/ip_repo/ip_fan_1.0/hdl/ip_fan_v1_0_S00_AXI.v deleted file mode 100644 index 560e2f1..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/hdl/ip_fan_v1_0_S00_AXI.v +++ /dev/null @@ -1,457 +0,0 @@ - -`timescale 1 ns / 1 ps - - module ip_fan_v1_0_S00_AXI # - ( - // Users to add parameters here - parameter FAN_PWM_FREQ = 200, - parameter SYS_CLK_FREQ = 20_000_000, - // User parameters ends - // Do not modify the parameters beyond this line - - // Width of S_AXI data bus - parameter integer C_S_AXI_DATA_WIDTH = 32, - // Width of S_AXI address bus - parameter integer C_S_AXI_ADDR_WIDTH = 4 - ) - ( - // Users to add ports here - - output reg fan, - - // User ports ends - // Do not modify the ports beyond this line - - // Global Clock Signal - input wire S_AXI_ACLK, - // Global Reset Signal. This Signal is Active LOW - input wire S_AXI_ARESETN, - // Write address (issued by master, acceped by Slave) - input wire [C_S_AXI_ADDR_WIDTH-1 : 0] S_AXI_AWADDR, - // Write channel Protection type. This signal indicates the - // privilege and security level of the transaction, and whether - // the transaction is a data access or an instruction access. - input wire [2 : 0] S_AXI_AWPROT, - // Write address valid. This signal indicates that the master signaling - // valid write address and control information. - input wire S_AXI_AWVALID, - // Write address ready. This signal indicates that the slave is ready - // to accept an address and associated control signals. - output wire S_AXI_AWREADY, - // Write data (issued by master, acceped by Slave) - input wire [C_S_AXI_DATA_WIDTH-1 : 0] S_AXI_WDATA, - // Write strobes. This signal indicates which byte lanes hold - // valid data. There is one write strobe bit for each eight - // bits of the write data bus. - input wire [(C_S_AXI_DATA_WIDTH/8)-1 : 0] S_AXI_WSTRB, - // Write valid. This signal indicates that valid write - // data and strobes are available. - input wire S_AXI_WVALID, - // Write ready. This signal indicates that the slave - // can accept the write data. - output wire S_AXI_WREADY, - // Write response. This signal indicates the status - // of the write transaction. - output wire [1 : 0] S_AXI_BRESP, - // Write response valid. This signal indicates that the channel - // is signaling a valid write response. - output wire S_AXI_BVALID, - // Response ready. This signal indicates that the master - // can accept a write response. - input wire S_AXI_BREADY, - // Read address (issued by master, acceped by Slave) - input wire [C_S_AXI_ADDR_WIDTH-1 : 0] S_AXI_ARADDR, - // Protection type. This signal indicates the privilege - // and security level of the transaction, and whether the - // transaction is a data access or an instruction access. - input wire [2 : 0] S_AXI_ARPROT, - // Read address valid. This signal indicates that the channel - // is signaling valid read address and control information. - input wire S_AXI_ARVALID, - // Read address ready. This signal indicates that the slave is - // ready to accept an address and associated control signals. - output wire S_AXI_ARREADY, - // Read data (issued by slave) - output wire [C_S_AXI_DATA_WIDTH-1 : 0] S_AXI_RDATA, - // Read response. This signal indicates the status of the - // read transfer. - output wire [1 : 0] S_AXI_RRESP, - // Read valid. This signal indicates that the channel is - // signaling the required read data. - output wire S_AXI_RVALID, - // Read ready. This signal indicates that the master can - // accept the read data and response information. - input wire S_AXI_RREADY - ); - - // AXI4LITE signals - reg [C_S_AXI_ADDR_WIDTH-1 : 0] axi_awaddr; - reg axi_awready; - reg axi_wready; - reg [1 : 0] axi_bresp; - reg axi_bvalid; - reg [C_S_AXI_ADDR_WIDTH-1 : 0] axi_araddr; - reg axi_arready; - reg [C_S_AXI_DATA_WIDTH-1 : 0] axi_rdata; - reg [1 : 0] axi_rresp; - reg axi_rvalid; - - // Example-specific design signals - // local parameter for addressing 32 bit / 64 bit C_S_AXI_DATA_WIDTH - // ADDR_LSB is used for addressing 32/64 bit registers/memories - // ADDR_LSB = 2 for 32 bits (n downto 2) - // ADDR_LSB = 3 for 64 bits (n downto 3) - localparam integer ADDR_LSB = (C_S_AXI_DATA_WIDTH/32) + 1; - localparam integer OPT_MEM_ADDR_BITS = 1; - //---------------------------------------------- - //-- Signals for user logic register space example - //------------------------------------------------ - //-- Number of Slave Registers 4 - reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg0; - reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg1; - reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg2; - reg [C_S_AXI_DATA_WIDTH-1:0] slv_reg3; - wire slv_reg_rden; - wire slv_reg_wren; - reg [C_S_AXI_DATA_WIDTH-1:0] reg_data_out; - integer byte_index; - reg aw_en; - - // I/O Connections assignments - - assign S_AXI_AWREADY = axi_awready; - assign S_AXI_WREADY = axi_wready; - assign S_AXI_BRESP = axi_bresp; - assign S_AXI_BVALID = axi_bvalid; - assign S_AXI_ARREADY = axi_arready; - assign S_AXI_RDATA = axi_rdata; - assign S_AXI_RRESP = axi_rresp; - assign S_AXI_RVALID = axi_rvalid; - // Implement axi_awready generation - // axi_awready is asserted for one S_AXI_ACLK clock cycle when both - // S_AXI_AWVALID and S_AXI_WVALID are asserted. axi_awready is - // de-asserted when reset is low. - - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - axi_awready <= 1'b0; - aw_en <= 1'b1; - end - else - begin - if (~axi_awready && S_AXI_AWVALID && S_AXI_WVALID && aw_en) - begin - // slave is ready to accept write address when - // there is a valid write address and write data - // on the write address and data bus. This design - // expects no outstanding transactions. - axi_awready <= 1'b1; - aw_en <= 1'b0; - end - else if (S_AXI_BREADY && axi_bvalid) - begin - aw_en <= 1'b1; - axi_awready <= 1'b0; - end - else - begin - axi_awready <= 1'b0; - end - end - end - - // Implement axi_awaddr latching - // This process is used to latch the address when both - // S_AXI_AWVALID and S_AXI_WVALID are valid. - - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - axi_awaddr <= 0; - end - else - begin - if (~axi_awready && S_AXI_AWVALID && S_AXI_WVALID && aw_en) - begin - // Write Address latching - axi_awaddr <= S_AXI_AWADDR; - end - end - end - - // Implement axi_wready generation - // axi_wready is asserted for one S_AXI_ACLK clock cycle when both - // S_AXI_AWVALID and S_AXI_WVALID are asserted. axi_wready is - // de-asserted when reset is low. - - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - axi_wready <= 1'b0; - end - else - begin - if (~axi_wready && S_AXI_WVALID && S_AXI_AWVALID && aw_en ) - begin - // slave is ready to accept write data when - // there is a valid write address and write data - // on the write address and data bus. This design - // expects no outstanding transactions. - axi_wready <= 1'b1; - end - else - begin - axi_wready <= 1'b0; - end - end - end - - // Implement memory mapped register select and write logic generation - // The write data is accepted and written to memory mapped registers when - // axi_awready, S_AXI_WVALID, axi_wready and S_AXI_WVALID are asserted. Write strobes are used to - // select byte enables of slave registers while writing. - // These registers are cleared when reset (active low) is applied. - // Slave register write enable is asserted when valid address and data are available - // and the slave is ready to accept the write address and write data. - assign slv_reg_wren = axi_wready && S_AXI_WVALID && axi_awready && S_AXI_AWVALID; - - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - slv_reg0 <= 0; - slv_reg1 <= 0; - slv_reg2 <= 0; - slv_reg3 <= 0; - end - else begin - if (slv_reg_wren) begin - case ( axi_awaddr[ADDR_LSB+OPT_MEM_ADDR_BITS:ADDR_LSB] ) - 2'h0: - for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) - if ( S_AXI_WSTRB[byte_index] == 1 ) begin - // Respective byte enables are asserted as per write strobes - // Slave register 0 - slv_reg0[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; - end - 2'h1: - for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) - if ( S_AXI_WSTRB[byte_index] == 1 ) begin - // Respective byte enables are asserted as per write strobes - // Slave register 1 - slv_reg1[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; - end - 2'h2: - for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) - if ( S_AXI_WSTRB[byte_index] == 1 ) begin - // Respective byte enables are asserted as per write strobes - // Slave register 2 - slv_reg2[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; - end - 2'h3: - for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) - if ( S_AXI_WSTRB[byte_index] == 1 ) begin - // Respective byte enables are asserted as per write strobes - // Slave register 3 - slv_reg3[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; - end - default : begin - slv_reg0 <= slv_reg0; - slv_reg1 <= slv_reg1; - slv_reg2 <= slv_reg2; - slv_reg3 <= slv_reg3; - end - endcase - end - end - end - - // Implement write response logic generation - // The write response and response valid signals are asserted by the slave - // when axi_wready, S_AXI_WVALID, axi_wready and S_AXI_WVALID are asserted. - // This marks the acceptance of address and indicates the status of - // write transaction. - - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - axi_bvalid <= 0; - axi_bresp <= 2'b0; - end - else - begin - if (axi_awready && S_AXI_AWVALID && ~axi_bvalid && axi_wready && S_AXI_WVALID) - begin - // indicates a valid write response is available - axi_bvalid <= 1'b1; - axi_bresp <= 2'b0; // 'OKAY' response - end // work error responses in future - else - begin - if (S_AXI_BREADY && axi_bvalid) - //check if bready is asserted while bvalid is high) - //(there is a possibility that bready is always asserted high) - begin - axi_bvalid <= 1'b0; - end - end - end - end - - // Implement axi_arready generation - // axi_arready is asserted for one S_AXI_ACLK clock cycle when - // S_AXI_ARVALID is asserted. axi_awready is - // de-asserted when reset (active low) is asserted. - // The read address is also latched when S_AXI_ARVALID is - // asserted. axi_araddr is reset to zero on reset assertion. - - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - axi_arready <= 1'b0; - axi_araddr <= 32'b0; - end - else - begin - if (~axi_arready && S_AXI_ARVALID) - begin - // indicates that the slave has acceped the valid read address - axi_arready <= 1'b1; - // Read address latching - axi_araddr <= S_AXI_ARADDR; - end - else - begin - axi_arready <= 1'b0; - end - end - end - - // Implement axi_arvalid generation - // axi_rvalid is asserted for one S_AXI_ACLK clock cycle when both - // S_AXI_ARVALID and axi_arready are asserted. The slave registers - // data are available on the axi_rdata bus at this instance. The - // assertion of axi_rvalid marks the validity of read data on the - // bus and axi_rresp indicates the status of read transaction.axi_rvalid - // is deasserted on reset (active low). axi_rresp and axi_rdata are - // cleared to zero on reset (active low). - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - axi_rvalid <= 0; - axi_rresp <= 0; - end - else - begin - if (axi_arready && S_AXI_ARVALID && ~axi_rvalid) - begin - // Valid read data is available at the read data bus - axi_rvalid <= 1'b1; - axi_rresp <= 2'b0; // 'OKAY' response - end - else if (axi_rvalid && S_AXI_RREADY) - begin - // Read data is accepted by the master - axi_rvalid <= 1'b0; - end - end - end - - // Implement memory mapped register select and read logic generation - // Slave register read enable is asserted when valid address is available - // and the slave is ready to accept the read address. - assign slv_reg_rden = axi_arready & S_AXI_ARVALID & ~axi_rvalid; - always @(*) - begin - // Address decoding for reading registers - case ( axi_araddr[ADDR_LSB+OPT_MEM_ADDR_BITS:ADDR_LSB] ) - 2'h0 : reg_data_out <= slv_reg0; - 2'h1 : reg_data_out <= slv_reg1; - 2'h2 : reg_data_out <= slv_reg2; - 2'h3 : reg_data_out <= slv_reg3; - default : reg_data_out <= 0; - endcase - end - - // slv_reg0[0]: - // 1 - turn on pwm, the fan is controlled by pwm - // 0 - turn off the fan - - // slv_reg1: - // 32bit register, an unsigned integer defining the dutycycle of pwm. dutycycle% = slv_reg1 / (2 ^ 32 - 1) * 100% - // - // Output register or memory read data - always @( posedge S_AXI_ACLK ) - begin - if ( S_AXI_ARESETN == 1'b0 ) - begin - axi_rdata <= 0; - end - else - begin - // When there is a valid read address (S_AXI_ARVALID) with - // acceptance of read address by the slave (axi_arready), - // output the read dada - if (slv_reg_rden) - begin - axi_rdata <= reg_data_out; // register read data - end - end - end - - // Add user logic here - reg S_AXI_BREADY_D0; - reg S_AXI_BREADY_D1; - wire S_AXI_BREADY_NEGEDGE = S_AXI_BREADY_D0 && !S_AXI_BREADY_D1; - parameter RELOAD_VALUE = SYS_CLK_FREQ / FAN_PWM_FREQ; - reg [31:0] counter; - - always @(posedge S_AXI_ACLK) begin - if (S_AXI_ARESETN == 1'b0) begin - S_AXI_BREADY_D0 <= 0; - S_AXI_BREADY_D1 <= 0; - end - else begin - S_AXI_BREADY_D0 <= S_AXI_BREADY; - S_AXI_BREADY_D1 <= S_AXI_BREADY_D0; - end - end - - always @(posedge S_AXI_ACLK) begin - if ( S_AXI_ARESETN == 1'b0 || S_AXI_BREADY_NEGEDGE == 1'b1) begin - fan <= 0; - end - else if (counter < slv_reg1) begin - fan <= 1'b1 & slv_reg0[0]; - end - else begin - fan <= 1'b0; - end - end - - always @(posedge S_AXI_ACLK) begin - if ( S_AXI_ARESETN == 1'b0 || S_AXI_BREADY_NEGEDGE == 1'b1) begin - counter <= 0; - end - else if (slv_reg0[0] == 1'b1)begin - if (counter >= RELOAD_VALUE) begin - counter <= 0; - end - else begin - counter <= counter + 32'd1; - end - end - else begin - counter <= 0; - end - end - // User logic ends - - endmodule diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/ip_fan_0.xcix b/hardware/pl_platform/ip_repo/ip_fan_1.0/ip_fan_0.xcix deleted file mode 100644 index 2bc5da0..0000000 Binary files a/hardware/pl_platform/ip_repo/ip_fan_1.0/ip_fan_0.xcix and /dev/null differ diff --git a/hardware/pl_platform/ip_repo/ip_fan_1.0/xgui/ip_fan_v1_0.tcl b/hardware/pl_platform/ip_repo/ip_fan_1.0/xgui/ip_fan_v1_0.tcl deleted file mode 100644 index 80d5298..0000000 --- a/hardware/pl_platform/ip_repo/ip_fan_1.0/xgui/ip_fan_v1_0.tcl +++ /dev/null @@ -1,81 +0,0 @@ -# Definitional proc to organize widgets for parameters. -proc init_gui { IPINST } { - ipgui::add_param $IPINST -name "Component_Name" - -} - -proc update_PARAM_VALUE.FAN_PWM_FREQ { PARAM_VALUE.FAN_PWM_FREQ } { - # Procedure called to update FAN_PWM_FREQ when any of the dependent parameters in the arguments change -} - -proc validate_PARAM_VALUE.FAN_PWM_FREQ { PARAM_VALUE.FAN_PWM_FREQ } { - # Procedure called to validate FAN_PWM_FREQ - return true -} - -proc update_PARAM_VALUE.SYS_CLK_FREQ { PARAM_VALUE.SYS_CLK_FREQ } { - # Procedure called to update SYS_CLK_FREQ when any of the dependent parameters in the arguments change -} - -proc validate_PARAM_VALUE.SYS_CLK_FREQ { PARAM_VALUE.SYS_CLK_FREQ } { - # Procedure called to validate SYS_CLK_FREQ - return true -} - -proc update_PARAM_VALUE.C_S00_AXI_DATA_WIDTH { PARAM_VALUE.C_S00_AXI_DATA_WIDTH } { - # Procedure called to update C_S00_AXI_DATA_WIDTH when any of the dependent parameters in the arguments change -} - -proc validate_PARAM_VALUE.C_S00_AXI_DATA_WIDTH { PARAM_VALUE.C_S00_AXI_DATA_WIDTH } { - # Procedure called to validate C_S00_AXI_DATA_WIDTH - return true -} - -proc update_PARAM_VALUE.C_S00_AXI_ADDR_WIDTH { PARAM_VALUE.C_S00_AXI_ADDR_WIDTH } { - # Procedure called to update C_S00_AXI_ADDR_WIDTH when any of the dependent parameters in the arguments change -} - -proc validate_PARAM_VALUE.C_S00_AXI_ADDR_WIDTH { PARAM_VALUE.C_S00_AXI_ADDR_WIDTH } { - # Procedure called to validate C_S00_AXI_ADDR_WIDTH - return true -} - -proc update_PARAM_VALUE.C_S00_AXI_BASEADDR { PARAM_VALUE.C_S00_AXI_BASEADDR } { - # Procedure called to update C_S00_AXI_BASEADDR when any of the dependent parameters in the arguments change -} - -proc validate_PARAM_VALUE.C_S00_AXI_BASEADDR { PARAM_VALUE.C_S00_AXI_BASEADDR } { - # Procedure called to validate C_S00_AXI_BASEADDR - return true -} - -proc update_PARAM_VALUE.C_S00_AXI_HIGHADDR { PARAM_VALUE.C_S00_AXI_HIGHADDR } { - # Procedure called to update C_S00_AXI_HIGHADDR when any of the dependent parameters in the arguments change -} - -proc validate_PARAM_VALUE.C_S00_AXI_HIGHADDR { PARAM_VALUE.C_S00_AXI_HIGHADDR } { - # Procedure called to validate C_S00_AXI_HIGHADDR - return true -} - - -proc update_MODELPARAM_VALUE.C_S00_AXI_DATA_WIDTH { MODELPARAM_VALUE.C_S00_AXI_DATA_WIDTH PARAM_VALUE.C_S00_AXI_DATA_WIDTH } { - # Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value - set_property value [get_property value ${PARAM_VALUE.C_S00_AXI_DATA_WIDTH}] ${MODELPARAM_VALUE.C_S00_AXI_DATA_WIDTH} -} - -proc update_MODELPARAM_VALUE.C_S00_AXI_ADDR_WIDTH { MODELPARAM_VALUE.C_S00_AXI_ADDR_WIDTH PARAM_VALUE.C_S00_AXI_ADDR_WIDTH } { - # Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value - set_property value [get_property value ${PARAM_VALUE.C_S00_AXI_ADDR_WIDTH}] ${MODELPARAM_VALUE.C_S00_AXI_ADDR_WIDTH} -} - -proc update_MODELPARAM_VALUE.FAN_PWM_FREQ { MODELPARAM_VALUE.FAN_PWM_FREQ PARAM_VALUE.FAN_PWM_FREQ } { - # Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value - set_property value [get_property value ${PARAM_VALUE.FAN_PWM_FREQ}] ${MODELPARAM_VALUE.FAN_PWM_FREQ} -} - -proc update_MODELPARAM_VALUE.SYS_CLK_FREQ { MODELPARAM_VALUE.SYS_CLK_FREQ PARAM_VALUE.SYS_CLK_FREQ } { - # Procedure called to set VHDL generic/Verilog parameter value(s) based on TCL parameter value - set_property value [get_property value ${PARAM_VALUE.SYS_CLK_FREQ}] ${MODELPARAM_VALUE.SYS_CLK_FREQ} -} - diff --git a/hardware/pl_platform/lower_machine.tcl b/hardware/pl_platform/lower_machine.tcl deleted file mode 100644 index 43db30e..0000000 --- a/hardware/pl_platform/lower_machine.tcl +++ /dev/null @@ -1,568 +0,0 @@ -#***************************************************************************************** -# Vivado (TM) v2022.1 (64-bit) -# -# lower_machine.tcl: Tcl script for re-creating project 'lower_machine' -# -# Generated by Vivado on Fri Apr 28 09:33:21 PDT 2023 -# IP Build 3524634 on Mon Apr 18 20:55:01 MDT 2022 -# -# This file contains the Vivado Tcl commands for re-creating the project to the state* -# when this script was generated. In order to re-create the project, please source this -# file in the Vivado Tcl Shell. -# -# * Note that the runs in the created project will be configured the same way as the -# original project, however they will not be launched automatically. To regenerate the -# run results please launch the synthesis/implementation runs as needed. -# -#***************************************************************************************** -# NOTE: In order to use this script for source control purposes, please make sure that the -# following files are added to the source control system:- -# -# 1. This project restoration tcl script (lower_machine.tcl) that was generated. -# -# 2. The following source(s) files that were local or imported into the original project. -# (Please see the '$orig_proj_dir' and '$origin_dir' variable setting below at the start of the script) -# -# "$origin_dir/bd/system.tcl" -# -# 3. The following remote source files that were added to the original project:- -# -# "$origin_dir/cstr/lower_machine.xdc" -# -#***************************************************************************************** - -# Check file required for this script exists -proc checkRequiredFiles { origin_dir} { - set status true - set files [list \ - "[file normalize "$origin_dir/bd/system.tcl"]"\ - ] - foreach ifile $files { - if { ![file isfile $ifile] } { - puts " Could not find local file $ifile " - set status false - } - } - - set files [list \ - "[file normalize "$origin_dir/cstr/lower_machine.xdc"]"\ - ] - foreach ifile $files { - if { ![file isfile $ifile] } { - puts " Could not find remote file $ifile " - set status false - } - } - - set paths [list \ - "[file normalize "$origin_dir/../[file normalize "$origin_dir/ip_repo"]"]"\ - ] - foreach ipath $paths { - if { ![file isdirectory $ipath] } { - puts " Could not access $ipath " - set status false - } - } - - return $status -} -# Set the reference directory for source file relative paths (by default the value is script directory path) -set origin_dir [file dirname [info script]] - -# Use origin directory path location variable, if specified in the tcl shell -if { [info exists ::origin_dir_loc] } { - set origin_dir $::origin_dir_loc -} - -# Set the project name -set _xil_proj_name_ "lower_machine" - -# Use project name variable, if specified in the tcl shell -if { [info exists ::user_project_name] } { - set _xil_proj_name_ $::user_project_name -} - -variable script_file -set script_file "lower_machine.tcl" - -# Help information for this script -proc print_help {} { - variable script_file - puts "\nDescription:" - puts "Recreate a Vivado project from this script. The created project will be" - puts "functionally equivalent to the original project for which this script was" - puts "generated. The script contains commands for creating a project, filesets," - puts "runs, adding/importing sources and setting properties on various objects.\n" - puts "Syntax:" - puts "$script_file" - puts "$script_file -tclargs \[--origin_dir \]" - puts "$script_file -tclargs \[--project_name \]" - puts "$script_file -tclargs \[--help\]\n" - puts "Usage:" - puts "Name Description" - puts "-------------------------------------------------------------------------" - puts "\[--origin_dir \] Determine source file paths wrt this path. Default" - puts " origin_dir path value is \".\", otherwise, the value" - puts " that was set with the \"-paths_relative_to\" switch" - puts " when this script was generated.\n" - puts "\[--project_name \] Create project with the specified name. Default" - puts " name is the name of the project from where this" - puts " script was generated.\n" - puts "\[--help\] Print help information for this script" - puts "-------------------------------------------------------------------------\n" - exit 0 -} - -if { $::argc > 0 } { - for {set i 0} {$i < $::argc} {incr i} { - set option [string trim [lindex $::argv $i]] - switch -regexp -- $option { - "--origin_dir" { incr i; set origin_dir [lindex $::argv $i] } - "--project_name" { incr i; set _xil_proj_name_ [lindex $::argv $i] } - "--help" { print_help } - default { - if { [regexp {^-} $option] } { - puts "ERROR: Unknown option '$option' specified, please type '$script_file -tclargs --help' for usage info.\n" - return 1 - } - } - } - } -} - -# Set the directory path for the original project from where this script was exported -set orig_proj_dir "[file normalize "$origin_dir/lower_machine"]" - -# Check for paths and files needed for project creation -set validate_required 0 -if { $validate_required } { - if { [checkRequiredFiles $origin_dir] } { - puts "Tcl file $script_file is valid. All files required for project creation is accesable. " - } else { - puts "Tcl file $script_file is not valid. Not all files required for project creation is accesable. " - return - } -} - -# Create project -create_project ${_xil_proj_name_} $origin_dir/${_xil_proj_name_} -part xc7z010clg400-1 - -# Set the directory path for the new project -set proj_dir [get_property directory [current_project]] - -# Set project properties -set obj [current_project] -set_property -name "default_lib" -value "xil_defaultlib" -objects $obj -set_property -name "enable_resource_estimation" -value "0" -objects $obj -set_property -name "enable_vhdl_2008" -value "1" -objects $obj -set_property -name "ip_cache_permissions" -value "read write" -objects $obj -set_property -name "ip_output_repo" -value "$proj_dir/${_xil_proj_name_}.cache/ip" -objects $obj -set_property -name "mem.enable_memory_map_generation" -value "1" -objects $obj -set_property -name "part" -value "xc7z010clg400-1" -objects $obj -set_property -name "revised_directory_structure" -value "1" -objects $obj -set_property -name "sim.central_dir" -value "$proj_dir/${_xil_proj_name_}.ip_user_files" -objects $obj -set_property -name "sim.ip.auto_export_scripts" -value "1" -objects $obj -set_property -name "simulator_language" -value "Mixed" -objects $obj -set_property -name "webtalk.activehdl_export_sim" -value "1" -objects $obj -set_property -name "webtalk.modelsim_export_sim" -value "1" -objects $obj -set_property -name "webtalk.questa_export_sim" -value "1" -objects $obj -set_property -name "webtalk.riviera_export_sim" -value "1" -objects $obj -set_property -name "webtalk.vcs_export_sim" -value "1" -objects $obj -set_property -name "webtalk.xcelium_export_sim" -value "1" -objects $obj -set_property -name "webtalk.xsim_export_sim" -value "1" -objects $obj -set_property -name "xpm_libraries" -value "XPM_CDC XPM_MEMORY" -objects $obj - -# Create 'sources_1' fileset (if not found) -if {[string equal [get_filesets -quiet sources_1] ""]} { - create_fileset -srcset sources_1 -} - -# Set IP repository paths -set obj [get_filesets sources_1] -if { $obj != {} } { - set_property "ip_repo_paths" "[file normalize "$origin_dir/ip_repo"]" $obj - - # Rebuild user ip_repo's index before adding any source files - update_ip_catalog -rebuild -} - -# Create block design -source $origin_dir/bd/system.tcl - -# Generate the wrapper -make_wrapper -files [get_files system.bd] -top -import - - -# Set 'sources_1' fileset file properties for local files -set file "system/system.bd" -set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]] -set_property -name "registered_with_manager" -value "1" -objects $file_obj - - -# Set 'sources_1' fileset properties -set obj [get_filesets sources_1] -set_property -name "top" -value "system_wrapper" -objects $obj - -# Create 'constrs_1' fileset (if not found) -if {[string equal [get_filesets -quiet constrs_1] ""]} { - create_fileset -constrset constrs_1 -} - -# Set 'constrs_1' fileset object -set obj [get_filesets constrs_1] - -# Add/Import constrs file and set constrs file properties -set file "[file normalize "$origin_dir/cstr/lower_machine.xdc"]" -set file_added [add_files -norecurse -fileset $obj [list $file]] -set file "$origin_dir/cstr/lower_machine.xdc" -set file [file normalize $file] -set file_obj [get_files -of_objects [get_filesets constrs_1] [list "*$file"]] -set_property -name "file_type" -value "XDC" -objects $file_obj - -# Set 'constrs_1' fileset properties -set obj [get_filesets constrs_1] -set_property -name "target_part" -value "xc7z010clg400-1" -objects $obj - -# Create 'sim_1' fileset (if not found) -if {[string equal [get_filesets -quiet sim_1] ""]} { - create_fileset -simset sim_1 -} - -# Set 'sim_1' fileset object -set obj [get_filesets sim_1] -# Empty (no sources present) - -# Set 'sim_1' fileset properties -set obj [get_filesets sim_1] -set_property -name "incremental" -value "0" -objects $obj -set_property -name "top" -value "system_wrapper" -objects $obj -set_property -name "top_lib" -value "xil_defaultlib" -objects $obj - -# Set 'utils_1' fileset object -set obj [get_filesets utils_1] -# Empty (no sources present) - -# Set 'utils_1' fileset properties -set obj [get_filesets utils_1] - -set idrFlowPropertiesConstraints "" -catch { - set idrFlowPropertiesConstraints [get_param runs.disableIDRFlowPropertyConstraints] - set_param runs.disableIDRFlowPropertyConstraints 1 -} - -# Create 'synth_1' run (if not found) -if {[string equal [get_runs -quiet synth_1] ""]} { - create_run -name synth_1 -part xc7z010clg400-1 -flow {Vivado Synthesis 2022} -strategy "Flow_PerfOptimized_high" -report_strategy {No Reports} -constrset constrs_1 -} else { - set_property strategy "Flow_PerfOptimized_high" [get_runs synth_1] - set_property flow "Vivado Synthesis 2022" [get_runs synth_1] -} -set obj [get_runs synth_1] -set_property set_report_strategy_name 1 $obj -set_property report_strategy {Vivado Synthesis Default Reports} $obj -set_property set_report_strategy_name 0 $obj -# Create 'synth_1_synth_report_utilization_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0] "" ] } { - create_report_config -report_name synth_1_synth_report_utilization_0 -report_type report_utilization:1.0 -steps synth_design -runs synth_1 -} -set obj [get_report_configs -of_objects [get_runs synth_1] synth_1_synth_report_utilization_0] -if { $obj != "" } { - -} -set obj [get_runs synth_1] -set_property -name "part" -value "xc7z010clg400-1" -objects $obj -set_property -name "strategy" -value "Flow_PerfOptimized_high" -objects $obj -set_property -name "steps.synth_design.args.directive" -value "PerformanceOptimized" -objects $obj -set_property -name "steps.synth_design.args.fsm_extraction" -value "one_hot" -objects $obj -set_property -name "steps.synth_design.args.keep_equivalent_registers" -value "1" -objects $obj -set_property -name "steps.synth_design.args.resource_sharing" -value "off" -objects $obj -set_property -name "steps.synth_design.args.no_lc" -value "1" -objects $obj -set_property -name "steps.synth_design.args.shreg_min_size" -value "5" -objects $obj - -# set the current synth run -current_run -synthesis [get_runs synth_1] - -# Create 'impl_1' run (if not found) -if {[string equal [get_runs -quiet impl_1] ""]} { - create_run -name impl_1 -part xc7z010clg400-1 -flow {Vivado Implementation 2022} -strategy "Performance_ExtraTimingOpt" -report_strategy {No Reports} -constrset constrs_1 -parent_run synth_1 -} else { - set_property strategy "Performance_ExtraTimingOpt" [get_runs impl_1] - set_property flow "Vivado Implementation 2022" [get_runs impl_1] -} -set obj [get_runs impl_1] -set_property set_report_strategy_name 1 $obj -set_property report_strategy {Vivado Implementation Default Reports} $obj -set_property set_report_strategy_name 0 $obj -# Create 'impl_1_init_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_init_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps init_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_init_report_timing_summary_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.report_unconstrained" -value "1" -objects $obj - -} -# Create 'impl_1_opt_report_drc_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0] "" ] } { - create_report_config -report_name impl_1_opt_report_drc_0 -report_type report_drc:1.0 -steps opt_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_drc_0] -if { $obj != "" } { - -} -# Create 'impl_1_opt_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps opt_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_opt_report_timing_summary_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.report_unconstrained" -value "1" -objects $obj - -} -# Create 'impl_1_power_opt_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_power_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps power_opt_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_power_opt_report_timing_summary_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.report_unconstrained" -value "1" -objects $obj - -} -# Create 'impl_1_place_report_io_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0] "" ] } { - create_report_config -report_name impl_1_place_report_io_0 -report_type report_io:1.0 -steps place_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_io_0] -if { $obj != "" } { - -} -# Create 'impl_1_place_report_utilization_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0] "" ] } { - create_report_config -report_name impl_1_place_report_utilization_0 -report_type report_utilization:1.0 -steps place_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_utilization_0] -if { $obj != "" } { - -} -# Create 'impl_1_place_report_control_sets_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0] "" ] } { - create_report_config -report_name impl_1_place_report_control_sets_0 -report_type report_control_sets:1.0 -steps place_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_control_sets_0] -if { $obj != "" } { -set_property -name "options.verbose" -value "1" -objects $obj - -} -# Create 'impl_1_place_report_incremental_reuse_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0] "" ] } { - create_report_config -report_name impl_1_place_report_incremental_reuse_0 -report_type report_incremental_reuse:1.0 -steps place_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj - -} -# Create 'impl_1_place_report_incremental_reuse_1' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1] "" ] } { - create_report_config -report_name impl_1_place_report_incremental_reuse_1 -report_type report_incremental_reuse:1.0 -steps place_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_incremental_reuse_1] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj - -} -# Create 'impl_1_place_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_place_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps place_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_place_report_timing_summary_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.report_unconstrained" -value "1" -objects $obj - -} -# Create 'impl_1_post_place_power_opt_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_post_place_power_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps post_place_power_opt_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_place_power_opt_report_timing_summary_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.report_unconstrained" -value "1" -objects $obj - -} -# Create 'impl_1_phys_opt_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_phys_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps phys_opt_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_phys_opt_report_timing_summary_0] -if { $obj != "" } { -set_property -name "is_enabled" -value "0" -objects $obj -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.report_unconstrained" -value "1" -objects $obj - -} -# Create 'impl_1_route_report_drc_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0] "" ] } { - create_report_config -report_name impl_1_route_report_drc_0 -report_type report_drc:1.0 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_drc_0] -if { $obj != "" } { - -} -# Create 'impl_1_route_report_methodology_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0] "" ] } { - create_report_config -report_name impl_1_route_report_methodology_0 -report_type report_methodology:1.0 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_methodology_0] -if { $obj != "" } { - -} -# Create 'impl_1_route_report_power_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0] "" ] } { - create_report_config -report_name impl_1_route_report_power_0 -report_type report_power:1.0 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_power_0] -if { $obj != "" } { - -} -# Create 'impl_1_route_report_route_status_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0] "" ] } { - create_report_config -report_name impl_1_route_report_route_status_0 -report_type report_route_status:1.0 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_route_status_0] -if { $obj != "" } { - -} -# Create 'impl_1_route_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_route_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_timing_summary_0] -if { $obj != "" } { -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.report_unconstrained" -value "1" -objects $obj - -} -# Create 'impl_1_route_report_incremental_reuse_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0] "" ] } { - create_report_config -report_name impl_1_route_report_incremental_reuse_0 -report_type report_incremental_reuse:1.0 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_incremental_reuse_0] -if { $obj != "" } { - -} -# Create 'impl_1_route_report_clock_utilization_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0] "" ] } { - create_report_config -report_name impl_1_route_report_clock_utilization_0 -report_type report_clock_utilization:1.0 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_clock_utilization_0] -if { $obj != "" } { - -} -# Create 'impl_1_route_report_bus_skew_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0] "" ] } { - create_report_config -report_name impl_1_route_report_bus_skew_0 -report_type report_bus_skew:1.1 -steps route_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_route_report_bus_skew_0] -if { $obj != "" } { -set_property -name "options.warn_on_violation" -value "1" -objects $obj - -} -# Create 'impl_1_post_route_phys_opt_report_timing_summary_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0] "" ] } { - create_report_config -report_name impl_1_post_route_phys_opt_report_timing_summary_0 -report_type report_timing_summary:1.0 -steps post_route_phys_opt_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_timing_summary_0] -if { $obj != "" } { -set_property -name "options.max_paths" -value "10" -objects $obj -set_property -name "options.report_unconstrained" -value "1" -objects $obj -set_property -name "options.warn_on_violation" -value "1" -objects $obj - -} -# Create 'impl_1_post_route_phys_opt_report_bus_skew_0' report (if not found) -if { [ string equal [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0] "" ] } { - create_report_config -report_name impl_1_post_route_phys_opt_report_bus_skew_0 -report_type report_bus_skew:1.1 -steps post_route_phys_opt_design -runs impl_1 -} -set obj [get_report_configs -of_objects [get_runs impl_1] impl_1_post_route_phys_opt_report_bus_skew_0] -if { $obj != "" } { -set_property -name "options.warn_on_violation" -value "1" -objects $obj - -} -set obj [get_runs impl_1] -set_property -name "part" -value "xc7z010clg400-1" -objects $obj -set_property -name "strategy" -value "Performance_ExtraTimingOpt" -objects $obj -set_property -name "steps.place_design.args.directive" -value "ExtraTimingOpt" -objects $obj -set_property -name "steps.phys_opt_design.args.directive" -value "Explore" -objects $obj -set_property -name "steps.route_design.args.directive" -value "NoTimingRelaxation" -objects $obj -set_property -name "steps.write_bitstream.args.readback_file" -value "0" -objects $obj -set_property -name "steps.write_bitstream.args.verbose" -value "0" -objects $obj - -# set the current impl run -current_run -implementation [get_runs impl_1] -catch { - if { $idrFlowPropertiesConstraints != {} } { - set_param runs.disableIDRFlowPropertyConstraints $idrFlowPropertiesConstraints - } -} - -puts "INFO: Project created:${_xil_proj_name_}" -# Create 'drc_1' gadget (if not found) -if {[string equal [get_dashboard_gadgets [ list "drc_1" ] ] ""]} { -create_dashboard_gadget -name {drc_1} -type drc -} -set obj [get_dashboard_gadgets [ list "drc_1" ] ] -set_property -name "reports" -value "impl_1#impl_1_route_report_drc_0" -objects $obj - -# Create 'methodology_1' gadget (if not found) -if {[string equal [get_dashboard_gadgets [ list "methodology_1" ] ] ""]} { -create_dashboard_gadget -name {methodology_1} -type methodology -} -set obj [get_dashboard_gadgets [ list "methodology_1" ] ] -set_property -name "reports" -value "impl_1#impl_1_route_report_methodology_0" -objects $obj - -# Create 'power_1' gadget (if not found) -if {[string equal [get_dashboard_gadgets [ list "power_1" ] ] ""]} { -create_dashboard_gadget -name {power_1} -type power -} -set obj [get_dashboard_gadgets [ list "power_1" ] ] -set_property -name "reports" -value "impl_1#impl_1_route_report_power_0" -objects $obj - -# Create 'timing_1' gadget (if not found) -if {[string equal [get_dashboard_gadgets [ list "timing_1" ] ] ""]} { -create_dashboard_gadget -name {timing_1} -type timing -} -set obj [get_dashboard_gadgets [ list "timing_1" ] ] -set_property -name "reports" -value "impl_1#impl_1_route_report_timing_summary_0" -objects $obj - -# Create 'utilization_1' gadget (if not found) -if {[string equal [get_dashboard_gadgets [ list "utilization_1" ] ] ""]} { -create_dashboard_gadget -name {utilization_1} -type utilization -} -set obj [get_dashboard_gadgets [ list "utilization_1" ] ] -set_property -name "reports" -value "synth_1#synth_1_synth_report_utilization_0" -objects $obj -set_property -name "run.step" -value "synth_design" -objects $obj -set_property -name "run.type" -value "synthesis" -objects $obj - -# Create 'utilization_2' gadget (if not found) -if {[string equal [get_dashboard_gadgets [ list "utilization_2" ] ] ""]} { -create_dashboard_gadget -name {utilization_2} -type utilization -} -set obj [get_dashboard_gadgets [ list "utilization_2" ] ] -set_property -name "reports" -value "impl_1#impl_1_place_report_utilization_0" -objects $obj - -move_dashboard_gadget -name {utilization_1} -row 0 -col 0 -move_dashboard_gadget -name {power_1} -row 1 -col 0 -move_dashboard_gadget -name {drc_1} -row 2 -col 0 -move_dashboard_gadget -name {timing_1} -row 0 -col 1 -move_dashboard_gadget -name {utilization_2} -row 1 -col 1 -move_dashboard_gadget -name {methodology_1} -row 2 -col 1 diff --git a/hardware/pl_platform/version b/hardware/pl_platform/version deleted file mode 100644 index ea710ab..0000000 --- a/hardware/pl_platform/version +++ /dev/null @@ -1 +0,0 @@ -1.2 \ No newline at end of file diff --git a/hardware/xme0724ioextend/PCB.PcbDoc b/hardware/xme0724ioextend/PCB.PcbDoc deleted file mode 100644 index c1d99ac..0000000 Binary files a/hardware/xme0724ioextend/PCB.PcbDoc and /dev/null differ diff --git a/hardware/xme0724ioextend/Sheet.SchDoc b/hardware/xme0724ioextend/Sheet.SchDoc deleted file mode 100644 index baff12d..0000000 Binary files a/hardware/xme0724ioextend/Sheet.SchDoc and /dev/null differ diff --git a/hardware/xme0724ioextend/version b/hardware/xme0724ioextend/version deleted file mode 100644 index 415b19f..0000000 --- a/hardware/xme0724ioextend/version +++ /dev/null @@ -1 +0,0 @@ -2.0 \ No newline at end of file diff --git a/hardware/xme0724ioextend/xme0724ioextend.PCBDwf b/hardware/xme0724ioextend/xme0724ioextend.PCBDwf deleted file mode 100644 index 7f882f4..0000000 Binary files a/hardware/xme0724ioextend/xme0724ioextend.PCBDwf and /dev/null differ diff --git a/hardware/xme0724ioextend/xme0724ioextend.PrjPcb b/hardware/xme0724ioextend/xme0724ioextend.PrjPcb deleted file mode 100644 index 89769d6..0000000 --- a/hardware/xme0724ioextend/xme0724ioextend.PrjPcb +++ /dev/null @@ -1,1029 +0,0 @@ -[Design] -Version=1.0 -HierarchyMode=0 -ChannelRoomNamingStyle=0 -ReleasesFolder= -ChannelDesignatorFormatString=$Component_$RoomName -ChannelRoomLevelSeperator=_ -OpenOutputs=1 -ArchiveProject=0 -TimestampOutput=0 -SeparateFolders=0 -TemplateLocationPath= -PinSwapBy_Netlabel=1 -PinSwapBy_Pin=1 -AllowPortNetNames=0 -AllowSheetEntryNetNames=1 -AppendSheetNumberToLocalNets=0 -NetlistSinglePinNets=0 -DefaultConfiguration=Sources -UserID=0xFFFFFFFF -DefaultPcbProtel=1 -DefaultPcbPcad=0 -ReorderDocumentsOnCompile=1 -NameNetsHierarchically=0 -PowerPortNamesTakePriority=0 -AutoSheetNumbering=1 -AutoCrossReferences=0 -NewIndexingOfSheetSymbols=0 -PushECOToAnnotationFile=1 -DItemRevisionGUID= -ReportSuppressedErrorsInMessages=0 -FSMCodingStyle=eFMSDropDownList_OneProcess -FSMEncodingStyle=eFMSDropDownList_OneHot -IsProjectConflictPreventionWarningsEnabled=0 -IsVirtualBomDocumentRemoved=0 -OutputPath= -LogFolderPath= -ManagedProjectGUID= -IncludeDesignInRelease=0 - -[Preferences] -PrefsVaultGUID= -PrefsRevisionGUID= - -[Document1] -DocumentPath=Sheet.SchDoc -AnnotationEnabled=1 -AnnotateStartValue=1 -AnnotationIndexControlEnabled=0 -AnnotateSuffix= -AnnotateScope=All -AnnotateOrder=0 -DoLibraryUpdate=1 -DoDatabaseUpdate=1 -ClassGenCCAutoEnabled=1 -ClassGenCCAutoRoomEnabled=1 -ClassGenNCAutoScope=None -DItemRevisionGUID= -GenerateClassCluster=0 -DocumentUniqueId=EQLVNOON - -[Document2] -DocumentPath=PCB.PcbDoc -AnnotationEnabled=1 -AnnotateStartValue=1 -AnnotationIndexControlEnabled=0 -AnnotateSuffix= -AnnotateScope=All -AnnotateOrder=-1 -DoLibraryUpdate=1 -DoDatabaseUpdate=1 -ClassGenCCAutoEnabled=1 -ClassGenCCAutoRoomEnabled=1 -ClassGenNCAutoScope=None -DItemRevisionGUID= -GenerateClassCluster=0 -DocumentUniqueId=LIDASSEV - -[Document3] -DocumentPath=lib\mw.PcbLib -AnnotationEnabled=1 -AnnotateStartValue=1 -AnnotationIndexControlEnabled=0 -AnnotateSuffix= -AnnotateScope=All -AnnotateOrder=-1 -DoLibraryUpdate=1 -DoDatabaseUpdate=1 -ClassGenCCAutoEnabled=1 -ClassGenCCAutoRoomEnabled=1 -ClassGenNCAutoScope=None -DItemRevisionGUID= -GenerateClassCluster=0 -DocumentUniqueId=MSKNGCIS - -[Document4] -DocumentPath=lib\mw.SchLib -AnnotationEnabled=1 -AnnotateStartValue=1 -AnnotationIndexControlEnabled=0 -AnnotateSuffix= -AnnotateScope=All -AnnotateOrder=-1 -DoLibraryUpdate=1 -DoDatabaseUpdate=1 -ClassGenCCAutoEnabled=1 -ClassGenCCAutoRoomEnabled=1 -ClassGenNCAutoScope=None -DItemRevisionGUID= -GenerateClassCluster=0 -DocumentUniqueId=SPCOHXLI - -[Document5] -DocumentPath=xme0724ioextend.PCBDwf -AnnotationEnabled=1 -AnnotateStartValue=1 -AnnotationIndexControlEnabled=0 -AnnotateSuffix= -AnnotateScope=All -AnnotateOrder=-1 -DoLibraryUpdate=1 -DoDatabaseUpdate=1 -ClassGenCCAutoEnabled=1 -ClassGenCCAutoRoomEnabled=1 -ClassGenNCAutoScope=None -DItemRevisionGUID= -GenerateClassCluster=0 -DocumentUniqueId=QUYLNYUW - -[Configuration1] -Name=Sources -ParameterCount=0 -ConstraintFileCount=0 -ReleaseItemId= -Variant=[No Variations] -OutputJobsCount=0 -ContentTypeGUID=CB6F2064-E317-11DF-B822-12313F0024A2 -ConfigurationType=Source - -[Generic_SmartPDF] -AutoOpenFile=0 -AutoOpenOutJob=0 - -[Generic_SmartPDFSettings] -ProjectMode=0 -ZoomPrecision=50 -AddNetsInformation=-1 -AddNetPins=-1 -AddNetNetLabels=-1 -AddNetPorts=-1 -ShowComponentParameters=-1 -GlobalBookmarks=0 -ExportBOM=0 -TemplateFilename= -TemplateStoreRelative=-1 -PCB_PrintColor=1 -SCH_PrintColor=0 -PrintQuality=-4 -SCH_ShowNoErc=-1 -SCH_ShowParameter=-1 -SCH_ShowProbes=-1 -SCH_ShowBlankets=-1 -SCH_NoERCSymbolsToShow="Thin Cross","Thick Cross","Small Cross",Checkbox,Triangle -SCH_ShowNote=-1 -SCH_ShowNoteCollapsed=-1 -SCH_ExpandLogicalToPhysical=-1 -SCH_VariantName=[No Variations] -SCH_ExpandComponentDesignators=-1 -SCH_ExpandNetlabels=0 -SCH_ExpandPorts=0 -SCH_ExpandSheetNumber=0 -SCH_ExpandDocumentNumber=0 -SCH_HasExpandLogicalToPhysicalSheets=-1 -SaveSettingsToOutJob=0 - -[Generic_EDE] -OutputDir= - -[OutputGroup1] -Name=Netlist Outputs -Description= -TargetPrinter=HP LaserJet Professional M1136 MFP -PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 -OutputType1=PADSNetlist -OutputName1=PADS ASCII Netlist -OutputDocumentPath1= -OutputVariantName1= -OutputDefault1=0 -OutputType2=PCADNetlist -OutputName2=PCAD Netlist -OutputDocumentPath2= -OutputVariantName2= -OutputDefault2=0 - -[OutputGroup2] -Name=Simulator Outputs -Description= -TargetPrinter=HP LaserJet Professional M1136 MFP -PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 - -[OutputGroup3] -Name=Documentation Outputs -Description= -TargetPrinter=Virtual Printer -PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 -OutputType1=Composite -OutputName1=Composite Drawing -OutputDocumentPath1= -OutputVariantName1= -OutputDefault1=0 -PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType2=PCB 3D Print -OutputName2=PCB 3D Print -OutputDocumentPath2= -OutputVariantName2=[No Variations] -OutputDefault2=0 -PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType3=PCB 3D Video -OutputName3=PCB 3D Video -OutputDocumentPath3= -OutputVariantName3=[No Variations] -OutputDefault3=0 -PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType4=PCB Print -OutputName4=PCB Prints -OutputDocumentPath4= -OutputVariantName4= -OutputDefault4=0 -PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType5=PCBDrawing -OutputName5=Draftsman -OutputDocumentPath5= -OutputVariantName5=[No Variations] -OutputDefault5=0 -PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType6=PCBLIB Print -OutputName6=PCBLIB Prints -OutputDocumentPath6= -OutputVariantName6= -OutputDefault6=0 -PageOptions6=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType7=Report Print -OutputName7=Report Prints -OutputDocumentPath7= -OutputVariantName7= -OutputDefault7=0 -PageOptions7=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType8=Schematic Print -OutputName8=Schematic Prints -OutputDocumentPath8= -OutputVariantName8= -OutputDefault8=0 -PageOptions8=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType9=SimView Print -OutputName9=SimView Prints -OutputDocumentPath9= -OutputVariantName9= -OutputDefault9=0 -PageOptions9=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 - -[OutputGroup4] -Name=Assembly Outputs -Description= -TargetPrinter=HP LaserJet Professional M1136 MFP -PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 -OutputType1=Assembly -OutputName1=Assembly Drawings -OutputDocumentPath1= -OutputVariantName1=[No Variations] -OutputDefault1=0 -PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType2=Pick Place -OutputName2=Generates pick and place files -OutputDocumentPath2= -OutputVariantName2=[No Variations] -OutputDefault2=0 -OutputType3=Test Points For Assembly -OutputName3=Test Point Report -OutputDocumentPath3= -OutputVariantName3=[No Variations] -OutputDefault3=0 - -[OutputGroup5] -Name=Fabrication Outputs -Description= -TargetPrinter=HP LaserJet Professional M1136 MFP -PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 -OutputType1=CompositeDrill -OutputName1=Composite Drill Drawing -OutputDocumentPath1= -OutputVariantName1= -OutputDefault1=0 -PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType2=Drill -OutputName2=Drill Drawing/Guides -OutputDocumentPath2= -OutputVariantName2= -OutputDefault2=0 -PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType3=Board Stack Report -OutputName3=Report Board Stack -OutputDocumentPath3= -OutputVariantName3= -OutputDefault3=0 -PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType4=Final -OutputName4=Final Artwork Prints -OutputDocumentPath4= -OutputVariantName4=[No Variations] -OutputDefault4=0 -PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType5=Gerber X2 -OutputName5=Gerber X2 Files -OutputDocumentPath5= -OutputVariantName5= -OutputDefault5=0 -OutputType6=ODB -OutputName6=ODB++ Files -OutputDocumentPath6= -OutputVariantName6=[No Variations] -OutputDefault6=0 -OutputType7=Mask -OutputName7=Solder/Paste Mask Prints -OutputDocumentPath7= -OutputVariantName7= -OutputDefault7=0 -PageOptions7=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType8=NC Drill -OutputName8=NC Drill Files -OutputDocumentPath8= -OutputVariantName8= -OutputDefault8=0 -Configuration8_Name1=ForceUpdateSettings -Configuration8_Item1=False -Configuration8_Name2=OutputConfigurationParameter1 -Configuration8_Item2=BoardEdgeRoutToolDia=2000000|GenerateBoardEdgeRout=False|GenerateDrilledSlotsG85=True|GenerateEIADrillFile=False|GenerateSeparatePlatedNonPlatedFiles=False|GenerateSeparateViaTypeFiles=False|NumberOfDecimals=5|NumberOfUnits=2|OptimizeChangeLocationCommands=True|OriginPosition=Relative|Record=DrillView|Units=Imperial|ZeroesMode=SuppressLeadingZeroes|DocumentPath=D:\guoyiren\lowermachine\hardware\xme0724ioextend\PCB.PcbDoc -OutputType9=IPC2581 -OutputName9=IPC-2581 Files -OutputDocumentPath9= -OutputVariantName9= -OutputDefault9=0 -OutputType10=Plane -OutputName10=Power-Plane Prints -OutputDocumentPath10= -OutputVariantName10= -OutputDefault10=0 -PageOptions10=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType11=Test Points -OutputName11=Test Point Report -OutputDocumentPath11= -OutputVariantName11= -OutputDefault11=0 -OutputType12=Gerber -OutputName12=Gerber Files -OutputDocumentPath12= -OutputVariantName12=[No Variations] -OutputDefault12=0 -Configuration12_Name1=ForceUpdateSettings -Configuration12_Item1=False -Configuration12_Name2=OutputConfigurationParameter1 -Configuration12_Item2=AddToAllLayerClasses.Set= |AddToAllPlots.Set=SerializeLayerHash.Version~2,ClassName~TPlotLayerStateArray|BoardID=LIDASSEV|CentrePlots=False|DrillDrawingSymbol=GraphicsSymbol|DrillDrawingSymbolSize=200000|EmbeddedApertures=True|FilmBorderSize=10000000|FilmXSize=200000000|FilmYSize=160000000|FlashAllFills=False|FlashPadShapes=True|G54OnApertureChange=False|GenerateDRCRulesFile=False|GenerateDRCRulesFile=False|GenerateReliefShapes=True|GenerateReports=True|GerberUnit=Imperial|GerberUnit=Imperial|IncludeUnconnectedMidLayerPads=False|LayerClassesMirror.Set= |LayerClassesPlot.Set= |LeadingAndTrailingZeroesMode=SuppressLeadingZeroes|MaxApertureSize=2500000|MergePadAndRegion=False|MinusApertureTolerance=50|MinusApertureTolerance=50|Mirror.Set=SerializeLayerHash.Version~2,ClassName~TPlotLayerStateArray|MirrorDrillDrawingPlots=False|MirrorDrillGuidePlots=False|NoRegularPolygons=False|NumberOfDecimals=6|NumberOfDecimals=6|OptimizeChangeLocationCommands=True|OptimizeChangeLocationCommands=True|OriginPosition=Relative|Panelize=False|Plot.Set=SerializeLayerHash.Version~2,ClassName~TPlotLayerStateArray,16973830~1,16973832~1,16973834~1,16777217~1,16842753~1,16842754~1,16842751~1,16973835~1,16973833~1,16973831~1,16908289~1,16973848~1,16973849~1|PlotBoardProfile=False|PlotBoardProfileFileName=PCB.GM|PlotDrillGuideLayerPair0_Backdrill=False|PlotDrillGuideLayerPair0_Checked=False|PlotDrillGuideLayerPair0_DrillType=Regular|PlotDrillGuideLayerPair0_FileName=PCB.GG1|PlotDrillGuideLayerPair0_HighLayer=Bottom Layer|PlotDrillGuideLayerPair0_LowLayer=Top Layer|PlotPositivePlaneLayers=False|PlotUsedDrillDrawingLayerPairs=True|PlotUsedDrillGuideLayerPairs=False|PlusApertureTolerance=50|PlusApertureTolerance=50|Record=GerberView|SoftwareArcs=False|Sorted=False|Sorted=False|UserLayerName.Caption0=PCB.GBO|UserLayerName.Caption1=PCB.GTP|UserLayerName.Caption10=PCB.GBS|UserLayerName.Caption11=PCB.GP2|UserLayerName.Caption12=PCB.GM1|UserLayerName.Caption13=PCB.GBL|UserLayerName.Caption14=PCB.GM15|UserLayerName.Caption15=PCB.GM3|UserLayerName.Caption16=PCB.GTL|UserLayerName.Caption17=PCB.GBP|UserLayerName.Caption2=PCB.GTO|UserLayerName.Caption3=PCB.GTS|UserLayerName.Caption4=PCB.GM13|UserLayerName.Caption5=PCB.GM2|UserLayerName.Caption6=PCB.GKO|UserLayerName.Caption7=PCB.GPT|UserLayerName.Caption8=PCB.GPB|UserLayerName.Caption9=PCB.GP1|UserLayerName.Count=18|UserLayerName.Layer0=16973831|UserLayerName.Layer1=16973832|UserLayerName.Layer10=16973835|UserLayerName.Layer11=16842754|UserLayerName.Layer12=16908289|UserLayerName.Layer13=16842751|UserLayerName.Layer14=16908303|UserLayerName.Layer15=16908291|UserLayerName.Layer16=16777217|UserLayerName.Layer17=16973833|UserLayerName.Layer2=16973830|UserLayerName.Layer3=16973834|UserLayerName.Layer4=16908301|UserLayerName.Layer5=16908290|UserLayerName.Layer6=16973837|UserLayerName.Layer7=16973848|UserLayerName.Layer8=16973849|UserLayerName.Layer9=16842753|DocumentPath=D:\guoyiren\lowermachine\hardware\xme0724ioextend\PCB.PcbDoc - -[OutputGroup6] -Name=Report Outputs -Description= -TargetPrinter=HP LaserJet Professional M1136 MFP -PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 -OutputType1=BOM_PartType -OutputName1=Bill of Materials -OutputDocumentPath1= -OutputVariantName1=[No Variations] -OutputDefault1=0 -PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -Configuration1_Name1=ColumnNameFormat -Configuration1_Item1=CaptionAsName -Configuration1_Name2=ForceUpdateSettings -Configuration1_Item2=False -Configuration1_Name3=General -Configuration1_Item3=OpenExported=False|AddToProject=False|ReportBOMViolationsInMessages=False|ForceFit=False|NotFitted=False|Database=False|DatabasePriority=False|IncludePcbData=False|IncludeVaultData=False|IncludeCloudData=False|IncludeDocumentData=True|IncludeAlternatives=False|ShowExportOptions=True|TemplateFilename=|TemplateVaultGuid=|TemplateItemGuid=|TemplateRevisionGuid=|BatchMode=2|FormWidth=1200|FormHeight=710|SupplierProdQty=1|SupplierAutoQty=False|SupplierUseCachedPricing=False|SupplierCurrency=USD|SolutionsPerItem=1|SuppliersPerSolution=1|ViewType=1|UseDirectApi=False|BomSetName= -Configuration1_Name4=GroupOrder -Configuration1_Item4=Comment=True|Footprint=True|value=True -Configuration1_Name5=SortOrder -Configuration1_Item5=Designator=Up|Footprint=Up -Configuration1_Name6=VisibleOrder -Configuration1_Item6=Designator=190|value=100|Footprint=120|voltage=100|precision=100|Quantity=75|Comment=148|Supplier Part Number 1=100 -Configuration1_Name7=VisibleOrder_Flat -Configuration1_Item7=Designator=190|value=100|Footprint=120|voltage=100|precision=100|Quantity=75|Comment=148|Supplier Part Number 1=100 -OutputType2=BOM_ReportCompare -OutputName2=BOM Compare -OutputDocumentPath2= -OutputVariantName2=[No Variations] -OutputDefault2=0 -PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType3=ComponentCrossReference -OutputName3=Component Cross Reference Report -OutputDocumentPath3= -OutputVariantName3=[No Variations] -OutputDefault3=0 -OutputType4=Export Comments -OutputName4=Export Comments -OutputDocumentPath4= -OutputVariantName4=[No Variations] -OutputDefault4=0 -PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType5=ReportHierarchy -OutputName5=Report Project Hierarchy -OutputDocumentPath5= -OutputVariantName5=[No Variations] -OutputDefault5=0 -OutputType6=Script -OutputName6=Script Output -OutputDocumentPath6= -OutputVariantName6=[No Variations] -OutputDefault6=0 -OutputType7=SimpleBOM -OutputName7=Simple BOM -OutputDocumentPath7= -OutputVariantName7=[No Variations] -OutputDefault7=0 -OutputType8=SinglePinNetReporter -OutputName8=Report Single Pin Nets -OutputDocumentPath8= -OutputVariantName8=[No Variations] -OutputDefault8=0 - -[OutputGroup7] -Name=Other Outputs -Description= -TargetPrinter=HP LaserJet Professional M1136 MFP -PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 -OutputType1=Text Print -OutputName1=Text Print -OutputDocumentPath1= -OutputVariantName1= -OutputDefault1=0 -PageOptions1=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType2=Text Print -OutputName2=Text Print -OutputDocumentPath2= -OutputVariantName2= -OutputDefault2=0 -PageOptions2=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType3=Text Print -OutputName3=Text Print -OutputDocumentPath3= -OutputVariantName3= -OutputDefault3=0 -PageOptions3=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType4=Text Print -OutputName4=Text Print -OutputDocumentPath4= -OutputVariantName4= -OutputDefault4=0 -PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType5=Text Print -OutputName5=Text Print -OutputDocumentPath5= -OutputVariantName5= -OutputDefault5=0 -PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType6=Text Print -OutputName6=Text Print -OutputDocumentPath6= -OutputVariantName6= -OutputDefault6=0 -PageOptions6=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType7=Text Print -OutputName7=Text Print -OutputDocumentPath7= -OutputVariantName7= -OutputDefault7=0 -PageOptions7=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType8=Text Print -OutputName8=Text Print -OutputDocumentPath8= -OutputVariantName8= -OutputDefault8=0 -PageOptions8=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType9=Text Print -OutputName9=Text Print -OutputDocumentPath9= -OutputVariantName9= -OutputDefault9=0 -PageOptions9=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType10=Text Print -OutputName10=Text Print -OutputDocumentPath10= -OutputVariantName10= -OutputDefault10=0 -PageOptions10=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType11=Text Print -OutputName11=Text Print -OutputDocumentPath11= -OutputVariantName11= -OutputDefault11=0 -PageOptions11=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType12=Text Print -OutputName12=Text Print -OutputDocumentPath12= -OutputVariantName12= -OutputDefault12=0 -PageOptions12=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType13=Text Print -OutputName13=Text Print -OutputDocumentPath13= -OutputVariantName13= -OutputDefault13=0 -PageOptions13=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType14=Text Print -OutputName14=Text Print -OutputDocumentPath14= -OutputVariantName14= -OutputDefault14=0 -PageOptions14=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType15=Text Print -OutputName15=Text Print -OutputDocumentPath15= -OutputVariantName15= -OutputDefault15=0 -PageOptions15=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType16=Text Print -OutputName16=Text Print -OutputDocumentPath16= -OutputVariantName16= -OutputDefault16=0 -PageOptions16=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType17=Text Print -OutputName17=Text Print -OutputDocumentPath17= -OutputVariantName17= -OutputDefault17=0 -PageOptions17=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 - -[OutputGroup8] -Name=Validation Outputs -Description= -TargetPrinter=HP LaserJet Professional M1136 MFP -PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 -OutputType1=BOM_Violations -OutputName1=BOM Checks Report -OutputDocumentPath1= -OutputVariantName1= -OutputDefault1=0 -OutputType2=Component states check -OutputName2=Server's components states check -OutputDocumentPath2= -OutputVariantName2= -OutputDefault2=0 -OutputType3=Configuration compliance -OutputName3=Environment configuration compliance check -OutputDocumentPath3= -OutputVariantName3= -OutputDefault3=0 -OutputType4=Design Rules Check -OutputName4=Design Rules Check -OutputDocumentPath4= -OutputVariantName4= -OutputDefault4=0 -PageOptions4=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType5=Differences Report -OutputName5=Differences Report -OutputDocumentPath5= -OutputVariantName5= -OutputDefault5=0 -PageOptions5=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType6=Electrical Rules Check -OutputName6=Electrical Rules Check -OutputDocumentPath6= -OutputVariantName6= -OutputDefault6=0 -PageOptions6=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 -OutputType7=Footprint Comparison Report -OutputName7=Footprint Comparison Report -OutputDocumentPath7= -OutputVariantName7= -OutputDefault7=0 - -[OutputGroup9] -Name=Export Outputs -Description= -TargetPrinter=HP LaserJet Professional M1136 MFP -PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 -OutputType1=AutoCAD dwg/dxf PCB -OutputName1=AutoCAD dwg/dxf File PCB -OutputDocumentPath1= -OutputVariantName1= -OutputDefault1=0 -OutputType2=AutoCAD dwg/dxf Schematic -OutputName2=AutoCAD dwg/dxf File Schematic -OutputDocumentPath2= -OutputVariantName2= -OutputDefault2=0 -OutputType3=ExportPARASOLID -OutputName3=Export PARASOLID -OutputDocumentPath3= -OutputVariantName3=[No Variations] -OutputDefault3=0 -OutputType4=ExportSTEP -OutputName4=Export STEP -OutputDocumentPath4= -OutputVariantName4=[No Variations] -OutputDefault4=0 -OutputType5=ExportVRML -OutputName5=Export VRML -OutputDocumentPath5= -OutputVariantName5=[No Variations] -OutputDefault5=0 -OutputType6=Save As/Export PCB -OutputName6=Save As/Export PCB -OutputDocumentPath6= -OutputVariantName6= -OutputDefault6=0 -OutputType7=Save As/Export Schematic -OutputName7=Save As/Export Schematic -OutputDocumentPath7= -OutputVariantName7= -OutputDefault7=0 -OutputType8=Specctra Design PCB -OutputName8=Specctra Design PCB -OutputDocumentPath8= -OutputVariantName8= -OutputDefault8=0 - -[OutputGroup10] -Name=PostProcess Outputs -Description= -TargetPrinter=HP LaserJet Professional M1136 MFP -PrinterOptions=Record=PrinterOptions|Copies=1|Duplex=1|TrueTypeOptions=3|Collate=1|PrintJobKind=1|PrintWhat=1 -OutputType1=Copy Files -OutputName1=Copy Files -OutputDocumentPath1= -OutputVariantName1= -OutputDefault1=0 - -[Modification Levels] -Type1=1 -Type2=1 -Type3=1 -Type4=1 -Type5=1 -Type6=1 -Type7=1 -Type8=1 -Type9=1 -Type10=1 -Type11=1 -Type12=1 -Type13=1 -Type14=1 -Type15=1 -Type16=1 -Type17=1 -Type18=1 -Type19=1 -Type20=1 -Type21=1 -Type22=1 -Type23=1 -Type24=1 -Type25=1 -Type26=1 -Type27=1 -Type28=1 -Type29=1 -Type30=1 -Type31=1 -Type32=1 -Type33=1 -Type34=1 -Type35=1 -Type36=1 -Type37=1 -Type38=1 -Type39=1 -Type40=1 -Type41=1 -Type42=1 -Type43=1 -Type44=1 -Type45=1 -Type46=1 -Type47=1 -Type48=1 -Type49=1 -Type50=1 -Type51=1 -Type52=1 -Type53=1 -Type54=1 -Type55=1 -Type56=1 -Type57=1 -Type58=1 -Type59=1 -Type60=1 -Type61=1 -Type62=1 -Type63=1 -Type64=1 -Type65=1 -Type66=1 -Type67=1 -Type68=1 -Type69=1 -Type70=1 -Type71=1 -Type72=1 -Type73=1 -Type74=1 -Type75=1 -Type76=1 -Type77=1 -Type78=1 -Type79=1 -Type80=1 -Type81=1 -Type82=1 -Type83=1 -Type84=1 -Type85=1 -Type86=1 -Type87=1 -Type88=1 -Type89=1 -Type90=1 -Type91=1 -Type92=1 -Type93=1 -Type94=1 -Type95=1 -Type96=1 -Type97=1 -Type98=1 -Type99=1 -Type100=1 -Type101=1 -Type102=1 -Type103=1 -Type104=1 -Type105=1 -Type106=1 -Type107=1 -Type108=1 -Type109=1 -Type110=1 -Type111=1 -Type112=1 -Type113=1 -Type114=1 -Type115=1 -Type116=1 -Type117=1 -Type118=1 -Type119=1 - -[Difference Levels] -Type1=1 -Type2=1 -Type3=1 -Type4=1 -Type5=1 -Type6=1 -Type7=1 -Type8=1 -Type9=1 -Type10=1 -Type11=1 -Type12=1 -Type13=1 -Type14=1 -Type15=1 -Type16=1 -Type17=1 -Type18=1 -Type19=1 -Type20=1 -Type21=1 -Type22=1 -Type23=1 -Type24=1 -Type25=1 -Type26=1 -Type27=1 -Type28=1 -Type29=1 -Type30=1 -Type31=1 -Type32=1 -Type33=1 -Type34=1 -Type35=1 -Type36=1 -Type37=1 -Type38=1 -Type39=1 -Type40=1 -Type41=1 -Type42=1 -Type43=1 -Type44=1 -Type45=1 -Type46=1 -Type47=1 -Type48=1 -Type49=1 -Type50=1 -Type51=1 -Type52=1 -Type53=1 -Type54=1 -Type55=1 -Type56=1 -Type57=1 -Type58=1 -Type59=1 -Type60=1 -Type61=1 -Type62=1 -Type63=1 -Type64=1 -Type65=1 -Type66=1 -Type67=1 -Type68=1 - -[Electrical Rules Check] -Type1=1 -Type2=1 -Type3=2 -Type4=1 -Type5=2 -Type6=2 -Type7=0 -Type8=1 -Type9=1 -Type10=1 -Type11=2 -Type12=2 -Type13=2 -Type14=1 -Type15=1 -Type16=1 -Type17=1 -Type18=1 -Type19=1 -Type20=0 -Type21=0 -Type22=0 -Type23=0 -Type24=1 -Type25=2 -Type26=0 -Type27=2 -Type28=1 -Type29=1 -Type30=1 -Type31=1 -Type32=2 -Type33=0 -Type34=2 -Type35=1 -Type36=2 -Type37=1 -Type38=2 -Type39=2 -Type40=2 -Type41=0 -Type42=2 -Type43=1 -Type44=0 -Type45=0 -Type46=0 -Type47=0 -Type48=0 -Type49=0 -Type50=2 -Type51=0 -Type52=0 -Type53=1 -Type54=1 -Type55=1 -Type56=2 -Type57=1 -Type58=1 -Type59=1 -Type60=0 -Type61=0 -Type62=0 -Type63=0 -Type64=0 -Type65=2 -Type66=3 -Type67=2 -Type68=2 -Type69=0 -Type70=2 -Type71=2 -Type72=2 -Type73=2 -Type74=1 -Type75=2 -Type76=1 -Type77=1 -Type78=1 -Type79=1 -Type80=2 -Type81=3 -Type82=3 -Type83=3 -Type84=3 -Type85=3 -Type86=2 -Type87=2 -Type88=2 -Type89=1 -Type90=1 -Type91=3 -Type92=3 -Type93=2 -Type94=2 -Type95=2 -Type96=2 -Type97=2 -Type98=0 -Type99=1 -Type100=2 -Type101=0 -Type102=2 -Type103=2 -Type104=1 -Type105=2 -Type106=2 -Type107=2 -Type108=2 -Type109=1 -Type110=1 -Type111=1 -Type112=1 -Type113=1 -Type114=2 -Type115=2 -Type116=2 -Type117=3 -Type118=3 -Type119=3 -MultiChannelAlternate=2 -AlternateItemFail=3 -Type122=2 -Type123=1 -Type124=1 -Type125=1 -Type126=1 - -[ERC Connection Matrix] -L1=NNNNNNNNNNNWNNNWW -L2=NNWNNNNWWWNWNWNWN -L3=NWEENEEEENEWNEEWN -L4=NNENNNWEENNWNENWN -L5=NNNNNNNNNNNNNNNNN -L6=NNENNNNEENNWNENWN -L7=NNEWNNWEENNWNENWN -L8=NWEENEENEEENNEENN -L9=NWEENEEEENEWNEEWW -L10=NWNNNNNENNEWNNEWN -L11=NNENNNNEEENWNENWN -L12=WWWWNWWNWWWNWWWNN -L13=NNNNNNNNNNNWNNNWW -L14=NWEENEEEENEWNEEWW -L15=NNENNNNEEENWNENWW -L16=WWWWNWWNWWWNWWWNW -L17=WNNNNNNNWNNNWWWWN - -[Annotate] -SortOrder=3 -SortLocation=0 -ReplaceSubparts=0 -MatchParameter1=Comment -MatchStrictly1=1 -MatchParameter2=Library Reference -MatchStrictly2=1 -PhysicalNamingFormat=$Component_$RoomName -GlobalIndexSortOrder=3 -GlobalIndexSortLocation=0 - -[PrjClassGen] -CompClassManualEnabled=0 -CompClassManualRoomEnabled=0 -NetClassAutoBusEnabled=1 -NetClassAutoCompEnabled=0 -NetClassAutoNamedHarnessEnabled=0 -NetClassManualEnabled=1 -NetClassSeparateForBusSections=0 - -[LibraryUpdateOptions] -SelectedOnly=0 -UpdateVariants=1 -UpdateToLatestRevision=1 -PartTypes=0 -FullReplace=1 -UpdateDesignatorLock=1 -UpdatePartIDLock=1 -PreserveParameterLocations=1 -PreserveParameterVisibility=1 -DoGraphics=1 -DoParameters=1 -DoModels=1 -AddParameters=0 -RemoveParameters=0 -AddModels=1 -RemoveModels=1 -UpdateCurrentModels=1 - -[DatabaseUpdateOptions] -SelectedOnly=0 -UpdateVariants=1 -UpdateToLatestRevision=1 -PartTypes=0 - -[Comparison Options] -ComparisonOptions0=Kind=Net|MinPercent=75|MinMatch=3|ShowMatch=0|UseName=-1|InclAllRules=0 -ComparisonOptions1=Kind=Net Class|MinPercent=75|MinMatch=3|ShowMatch=0|UseName=-1|InclAllRules=0 -ComparisonOptions2=Kind=Component Class|MinPercent=75|MinMatch=3|ShowMatch=0|UseName=-1|InclAllRules=0 -ComparisonOptions3=Kind=Rule|MinPercent=75|MinMatch=3|ShowMatch=0|UseName=-1|InclAllRules=0 -ComparisonOptions4=Kind=Differential Pair|MinPercent=50|MinMatch=1|ShowMatch=0|UseName=0|InclAllRules=0 -ComparisonOptions5=Kind=Structure Class|MinPercent=75|MinMatch=3|ShowMatch=0|UseName=-1|InclAllRules=0 - -[SmartPDF] -PageOptions=Record=PageOptions|CenterHorizontal=True|CenterVertical=True|PrintScale=1.00|XCorrection=1.00|YCorrection=1.00|PrintKind=1|BorderSize=5000000|LeftOffset=0|BottomOffset=0|Orientation=2|PaperLength=1000|PaperWidth=1000|Scale=100|PaperSource=7|PrintQuality=-3|MediaType=1|DitherType=10|PrintScaleMode=1|PaperKind=A4|PaperIndex=9 - diff --git a/hardware/xme0724ioextend/xme0724ioextend.PrjPcbStructure b/hardware/xme0724ioextend/xme0724ioextend.PrjPcbStructure deleted file mode 100644 index 1fd7e75..0000000 --- a/hardware/xme0724ioextend/xme0724ioextend.PrjPcbStructure +++ /dev/null @@ -1 +0,0 @@ -Record=TopLevelDocument|FileName=Sheet.SchDoc|SheetNumber=1 diff --git a/script/.bashrc b/script/.bashrc deleted file mode 100644 index e06ffc0..0000000 --- a/script/.bashrc +++ /dev/null @@ -1,108 +0,0 @@ - -# If not running interactively, don't do anything -case $- in - *i*) ;; - *) return;; -esac - -# don't put duplicate lines or lines starting with space in the history. -# See bash(1) for more options -HISTCONTROL=ignoreboth - -# append to the history file, don't overwrite it -shopt -s histappend - -# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) -HISTSIZE=1000 -HISTFILESIZE=2000 - -# check the window size after each command and, if necessary, -# update the values of LINES and COLUMNS. -shopt -s checkwinsize - -# If set, the pattern "**" used in a pathname expansion context will -# match all files and zero or more directories and subdirectories. -#shopt -s globstar - -# make less more friendly for non-text input files, see lesspipe(1) -[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" - -# set a fancy prompt (non-color, unless we know we "want" color) -case "$TERM" in - xterm-color|*-256color) color_prompt=yes;; -esac - -# uncomment for a colored prompt, if the terminal has the capability; turned -# off by default to not distract the user: the focus in a terminal window -# should be on the output of commands, not on the prompt -force_color_prompt=yes - -if [ -n "$force_color_prompt" ]; then - if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then - # We have color support; assume it's compliant with Ecma-48 - # (ISO/IEC-6429). (Lack of such support is extremely rare, and such - # a case would tend to support setf rather than setaf.) - color_prompt=yes - else - color_prompt= - fi -fi - -if [ "$color_prompt" = yes ]; then - PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' -else - PS1='\u@\h:\w\$ ' -fi -unset color_prompt force_color_prompt - -# If this is an xterm set the title to user@host:dir -case "$TERM" in -xterm*|rxvt*) - PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" - ;; -*) - ;; -esac - -# enable color support of ls and also add handy aliases - -alias ls='ls --color=auto' -#alias dir='dir --color=auto' -#alias vdir='vdir --color=auto' - -alias grep='grep --color=auto' -alias fgrep='fgrep --color=auto' -alias egrep='egrep --color=auto' - - -# colored GCC warnings and errors -#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' - -# some more ls aliases -alias ll='ls -alF' -alias la='ls -A' -alias l='ls -CF' - -# Add an "alert" alias for long running commands. Use like so: -# sleep 10; alert -alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' - -# Alias definitions. -# You may want to put all your additions into a separate file like -# ~/.bash_aliases, instead of adding them here directly. -# See /usr/share/doc/bash-doc/examples in the bash-doc package. - -if [ -f ~/.bash_aliases ]; then - . ~/.bash_aliases -fi - -# enable programmable completion features (you don't need to enable -# this, if it's already enabled in /etc/bash.bashrc and /etc/profile -# sources /etc/bash.bashrc). -if [ -f /usr/share/bash-completion/bash_completion ]; then -. /usr/share/bash-completion/bash_completion -elif [ -f /etc/bash_completion ]; then -. /etc/bash_completion -fi - - diff --git a/script/.profile b/script/.profile deleted file mode 100644 index a873160..0000000 --- a/script/.profile +++ /dev/null @@ -1,11 +0,0 @@ -# ~/.profile: executed by Bourne-compatible login shells. - -if [ -f ~/.bashrc ]; then - . ~/.bashrc -fi - -# path set by /etc/profile -# export PATH - -# Might fail after "su - myuser" when /dev/tty* is not writable by "myuser". -mesg n 2>/dev/null diff --git a/script/loadencoder.sh b/script/loadencoder.sh deleted file mode 100644 index 3cb5289..0000000 --- a/script/loadencoder.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -modprobe encoder \ No newline at end of file diff --git a/script/target.sh b/script/target.sh deleted file mode 100644 index 163a163..0000000 --- a/script/target.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -if [ -x /home/root/target ]; then - /home/root/target -fi diff --git a/script/version b/script/version deleted file mode 100644 index b123147..0000000 --- a/script/version +++ /dev/null @@ -1 +0,0 @@ -1.1 \ No newline at end of file diff --git a/source/linux_app/.gitignore b/source/linux_app/.gitignore deleted file mode 100644 index 90c5bbe..0000000 --- a/source/linux_app/.gitignore +++ /dev/null @@ -1,66 +0,0 @@ -# Prerequisites -*.d - -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -!.vscode/c_cpp_properties.json -!.vscode/*.code-snippets -build/ - -# Local History for Visual Studio Code -.history/ - -# Built Visual Studio Code Extensions -*.vsix -# Object files -*.o -*.ko -*.obj -*.elf - -# Linker output -*.ilk -*.map -*.exp - -# Precompiled Headers -*.gch -*.pch - -# Libraries -*.lib -*.a -*.la -*.lo - -# Shared objects (inc. Windows DLLs) -*.dll -*.so -*.so.* -*.dylib - -# Executables -*.exe -*.out -*.app -*.i*86 -*.x86_64 -*.hex - -# Debug files -*.dSYM/ -*.su -*.idb -*.pdb - -# Kernel Module Compile Results -*.mod* -*.cmd -.tmp_versions/ -modules.order -Module.symvers -Mkfile.old -dkms.conf \ No newline at end of file diff --git a/source/linux_app/Makefile b/source/linux_app/Makefile deleted file mode 100644 index ec46912..0000000 --- a/source/linux_app/Makefile +++ /dev/null @@ -1,85 +0,0 @@ -CROSS_COMPILE ?= /home/miaow/software/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf- -TARGET := target -BUILD_DIR := build - -ifeq ("$(origin V)", "command line") - KBUILD_VERBOSE = $(V) -endif -ifndef KBUILD_VERBOSE - KBUILD_VERBOSE = 0 -endif - -ifeq ($(KBUILD_VERBOSE),1) - quiet = - Q = -else - quiet=quiet_ - Q = @ -endif - -ifneq ($(filter 4.%,$(MAKE_VERSION)),) # make-4 -ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),) - quiet=silent_ -endif -else # make-3.8x -ifneq ($(filter s% -s%,$(MAKEFLAGS)),) - quiet=silent_ -endif -endif - - -SRC := $(wildcard *.c) -ASM_SRC := $(wildcard *.s) -OBJ := $(addprefix $(BUILD_DIR)/, $(notdir $(SRC:.c=.o))) -ASM_OBJ := $(addprefix $(BUILD_DIR)/, $(notdir $(ASM_SRC:.s=.o))) -DIS := $(addprefix $(BUILD_DIR)/, $(notdir $(SRC:.c=.dis))) -ASM_DIS := $(addprefix $(BUILD_DIR)/, $(notdir $(ASM_SRC:.s=.dis))) - -_TARGET := $(BUILD_DIR)/$(TARGET) -TARGET_DIS := $(BUILD_DIR)/$(TARGET).dis - -LD = $(CROSS_COMPILE)ld -CC = $(CROSS_COMPILE)gcc -CPP = $(CC) -E -AR = $(CROSS_COMPILE)ar -LDR = $(CROSS_COMPILE)ldr -STRIP = $(CROSS_COMPILE)strip -OBJCOPY = $(CROSS_COMPILE)objcopy -OBJDUMP = $(CROSS_COMPILE)objdump -CFLAGS = -g -std=gnu99 -Wall -I. -LDFLAGS = -lpthread -lc -lm -lrt - -.SECONDARY: - -.PHONY:all -all: $(_TARGET) $(DIS) $(ASM_DIS) $(TARGET_DIS) - -$(BUILD_DIR)/%.i:%.c %.h Makefile | $(BUILD_DIR) - $(Q)$(CC) -E $(CFLAGS) $< -o $@ -$(BUILD_DIR)/%.s:$(BUILD_DIR)/%.i Makefile | $(BUILD_DIR) - $(Q)$(CC) -S $(CFLAGS) $< -o $@ -$(BUILD_DIR)/%.o:$(BUILD_DIR)/%.s Makefile | $(BUILD_DIR) - $(Q)$(CC) -c $(CFLAGS) $< -o $@ -$(BUILD_DIR)/%.o:%.s Makefile | $(BUILD_DIR) - $(Q)$(CC) -c $(CFLAGS) $< -o $@ -$(BUILD_DIR)/%.dis:$(BUILD_DIR)/%.o Makefile | $(BUILD_DIR) - $(Q)$(OBJDUMP) -s -d $< > $@ -$(TARGET_DIS):$(_TARGET) Makefile | $(BUILD_DIR) - $(Q)$(OBJDUMP) -s -d $< > $@ -$(_TARGET):$(OBJ) $(ASM_OBJ) Makefile | $(BUILD_DIR) - $(Q)$(CC) $(OBJ) $(ASM_OBJ) $(LDFLAGS) -o $@ - - -.PHONY:clean -clean: - $(Q)$(RM) $(BUILD_DIR)/* -f - -.PHONY:install -install:$(TARGET) - $(Q)chmod 777 $(TARGET) - -.PHONY:$(BUILD_DIR) -$(BUILD_DIR): - $(Q)if [ ! -d $(BUILD_DIR) ]; then mkdir -p $@; fi - - \ No newline at end of file diff --git a/source/linux_app/common.h b/source/linux_app/common.h deleted file mode 100644 index 6578f99..0000000 --- a/source/linux_app/common.h +++ /dev/null @@ -1,46 +0,0 @@ -/** - * @file common.h - * @brief Common macros. - * @author miaow (3703781@qq.com) - * @version 1.0 - * @date 2022/06/12 - * @mainpage github.com/NanjingForestryUniversity - * - * @copyright Copyright (c) 2022 miaow - * - * @par Changelog: - * - *
Date Version Author Description - *
2022/06/12 1.0 miaow Write this file - *
- */ -#ifndef __COMMON_H -#define __COMMON_H - -#include -#include - -#define ON_ERROR(res, message1, message2) \ - if (res < 0) \ - { \ - sprintf(perror_buffer, "error %d at %s:%d, %s, %s", res, __FILE__, __LINE__, message1, message2); \ - perror(perror_buffer); \ - } - -#define ON_ERROR_RET_VOID(res, message1, message2) \ - ON_ERROR(res, message1, message2); \ - if (res < 0) \ - { \ - res = 0; \ - return; \ - } - -#define ON_ERROR_RET(res, message1, message2, retval) \ - ON_ERROR(res, message1, message2); \ - if (res < 0) \ - { \ - res = 0; \ - return retval; \ - } - -#endif \ No newline at end of file diff --git a/source/linux_app/data_filter.c b/source/linux_app/data_filter.c deleted file mode 100644 index fff8bb2..0000000 --- a/source/linux_app/data_filter.c +++ /dev/null @@ -1,52 +0,0 @@ -/** - * @file data_filter.c - * @brief Manage the hardware encoder unit - * @author miaow (3703781@qq.com) - * @version 1.0 - * @date 2022/08/06 - * - * @copyright Copyright (c) 2022 miaow - * - * @par Changelog: - * - *
Date Version Author Description - *
2022/08/06 1.0 Miaow Write this module - *
- */ - -#include -#include -#include - -void datafilter_init(datafilter_typedef *filter, int w_size) -{ - filter->cache = (int *)malloc(sizeof(int) * (w_size + 1)); - memset(filter->cache, 0, sizeof(int) * (w_size + 1)); - - filter->w_size = w_size; - filter->sum = 0; - filter->head = 0; -} - -int datafilter_calculate(datafilter_typedef *filter, int z) -{ - filter->cache[filter->head] = z; - filter->head = (filter->head + 1) % (filter->w_size + 1); - filter->sum = filter->sum + z - filter->cache[filter->head]; - if (filter->w_size != 0) - return filter->sum / filter->w_size; - else - return -1; -} - -void datafilter_deinit(datafilter_typedef *filter) -{ - if (filter->cache != NULL) - { - free(filter->cache); - filter->cache = NULL; - } - filter->sum = 0; - filter->w_size = 0; - filter->head = 0; -} diff --git a/source/linux_app/data_filter.h b/source/linux_app/data_filter.h deleted file mode 100644 index b2e8c8c..0000000 --- a/source/linux_app/data_filter.h +++ /dev/null @@ -1,34 +0,0 @@ -/** - * @file data_filter.h - * @brief Manage the hardware encoder unit - * @author miaow (3703781@qq.com) - * @version 1.0 - * @date 2022/08/06 - * - * @copyright Copyright (c) 2022 miaow - * - * @par Changelog: - * - *
Date Version Author Description - *
2022/08/06 1.0 Miaow Write this module - *
- */ -#ifndef __DATA_FILTER_H -#define __DATA_FILTER_H - -typedef struct -{ - int w_size; - int head; - int sum; - int *cache; -} datafilter_typedef; - -void datafilter_init(datafilter_typedef *filter, int w_size); - -int datafilter_calculate(datafilter_typedef *filter, int z); - -void datafilter_deinit(datafilter_typedef *filter); - - -#endif diff --git a/source/linux_app/encoder_dev.c b/source/linux_app/encoder_dev.c deleted file mode 100644 index 08bda58..0000000 --- a/source/linux_app/encoder_dev.c +++ /dev/null @@ -1,151 +0,0 @@ -/** - * @file encoder_dev.c - * @brief Manage the hardware encoder unit - * @author miaow, lyz (3703781@qq.com) - * @version 0.11 - * @date 2022/04/26 - * @mainpage github.com/NanjingForestryUniversity - * - * @copyright Copyright (c) 2023 miaow, lyz - * - * @par Changelog: - * - *
Date Version Author Description - *
2022/06/11 0.9 Miaow Write this module - *
2022/04/11 0.10 lyz Add seprate dividers up to 4 cameras - *
2023/04/26 0.11 Miaow Add Clear mode - *
- */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define ENCODER_CMD_FUNCTION_CLEAR 1 -#define ENCODER_CMD_FUNCTION_VIRT_INPUT 2 - -static int encoder_dev_fd = -1; -static char perror_buffer[128]; - -static struct -{ - uint32_t valve_divide_value; - uint32_t camera_a_divide_value; - uint32_t camera_b_divide_value; - uint32_t camera_c_divide_value; - uint32_t camera_d_divide_value; -} encoder_dev_divide_value_structure; - -/** - * @brief Initialize the hardware encoder unit - * @note This function just open the file descriptor of the hardware encoder unit - * @return 0 - success, other - error - */ -int encoder_dev_init() -{ - encoder_dev_fd = open(ENCODER_DEV_PATH, O_RDWR); - ON_ERROR_RET(encoder_dev_fd, "", "", -1); - encoder_dev_set_divide( 100, 100, 100, 100); - return 0; -} - -/** - * @brief Set the two divider in the hareware encoder unit. - * @param camera_a_divide the frequency division factor between the encoder signal and camera a triggle signal - * Set ENCODER_DEV_DIVIDE_NOT_TO_SET to skip changing the division facter - * @param camera_b_divide the frequency division factor between the encoder signal and camera b triggle signal - * Set ENCODER_DEV_DIVIDE_NOT_TO_SET to skip changing the division facter - * @param camera_c_divide the frequency division factor between the encoder signal and camera c triggle signal - * Set ENCODER_DEV_DIVIDE_NOT_TO_SET to skip changing the division facter - * @param camera_d_divide the frequency division factor between the encoder signal and camera d triggle signal - * Set ENCODER_DEV_DIVIDE_NOT_TO_SET to skip changing the division facter - * @return 0 - success, other - error - */ -int encoder_dev_set_divide(int camera_a_divide, - int camera_b_divide, - int camera_c_divide, - int camera_d_divide) -{ - encoder_dev_divide_value_structure.valve_divide_value = 2; - if (camera_a_divide != ENCODER_DEV_DIVIDE_NOT_TO_SET) - encoder_dev_divide_value_structure.camera_a_divide_value = camera_a_divide; - if (camera_b_divide != ENCODER_DEV_DIVIDE_NOT_TO_SET) - encoder_dev_divide_value_structure.camera_b_divide_value = camera_b_divide; - if (camera_c_divide != ENCODER_DEV_DIVIDE_NOT_TO_SET) - encoder_dev_divide_value_structure.camera_c_divide_value = camera_c_divide; - if (camera_d_divide != ENCODER_DEV_DIVIDE_NOT_TO_SET) - encoder_dev_divide_value_structure.camera_d_divide_value = camera_d_divide; - - ssize_t size = write(encoder_dev_fd, &encoder_dev_divide_value_structure, sizeof(encoder_dev_divide_value_structure)); - int res = -(size != sizeof(encoder_dev_divide_value_structure)); - ON_ERROR_RET(res, "size=", "", -1); - - return 0; -} - -/** - * @brief Set the trig signal to internal or external. - * @param count the count of virtual trig cycles. - * @return 0 - success, other - error - */ -int encoder_dev_virtual_trig(int count) -{ - int res = ioctl(encoder_dev_fd, _IOW('D', ENCODER_CMD_FUNCTION_VIRT_INPUT, int), count); - ON_ERROR_RET(res, "", "", -1); - return 0; -} - -/** - * @brief Set the trig signal to internal or external. - * @param mode ENCODER_TRIG_MODE_EXTERNEL for externally trig, or ENCODER_TRIG_MODE_INTERNEL for internally trig - * @return 0 - success, other - error - */ -int encoder_dev_set_trigmod(encoder_dev_trig_mode_enum mode) -{ - int res = ioctl(encoder_dev_fd, _IOW('D', mode, int)); - ON_ERROR_RET(res, "", "", -1); - return 0; -} - -/** - * @brief Set the clr signal to internal or both external and internal. - * @return 0 - success, other - error - */ -int encoder_dev_set_clrmod(encoder_dev_clear_mode_enum mode) -{ - int res = ioctl(encoder_dev_fd, _IOW('D', mode, int)); - ON_ERROR_RET(res, "", "", -1); - return 0; -} - -/** - * @brief Claer the cache in hardware encoder unit. - * @note The frequency division counters continutly count pluses of external/internal signal. - * This functhion clears the counters. - * @return 0 - success, other - error - */ -int encoder_dev_flush() -{ - int res = ioctl(encoder_dev_fd, _IOW('D', ENCODER_CMD_FUNCTION_CLEAR, 0)); - ON_ERROR_RET(res, "", "", -1); - return 0; -} - -/** - * @brief Deinitialize the hardware encoder unit. - * @note This function just close the file descriptor of the encoder unit. - * @return 0 - success, other - error - */ -int encoder_dev_deinit() -{ - int res = close(encoder_dev_fd); - - ON_ERROR_RET(res, "", "", -1); - return 0; -} diff --git a/source/linux_app/encoder_dev.h b/source/linux_app/encoder_dev.h deleted file mode 100644 index 231db31..0000000 --- a/source/linux_app/encoder_dev.h +++ /dev/null @@ -1,51 +0,0 @@ -/** - * @file encoder_dev.h - * @brief Manage the hardware encoder unit - * @author miaow, lzy (3703781@qq.com) - * @version 0.11 - * @date 2022/04/26 - * @mainpage github.com/NanjingForestryUniversity - * - * @copyright Copyright (c) 2023 miaow, lyz - * - * @par Changelog: - * - *
Date Version Author Description - *
2022/06/11 0.9 Miaow Write this module - *
2022/04/11 0.10 lyz Add seprate dividers up to 4 cameras - *
2023/04/26 0.11 Miaow Add Clear mode - *
- */ -#ifndef __ENCODER_DEV_H -#define __ENCODER_DEV_H - -#include - -#define ENCODER_DEV_PATH "/dev/encoder" - -#define ENCODER_DEV_DIVIDE_NOT_TO_SET 0 - -typedef enum -{ - ENCODER_TRIG_MODE_EXTERNEL = 100, - ENCODER_TRIG_MODE_INTERNEL = 101 -} encoder_dev_trig_mode_enum; - -typedef enum -{ - ENCODER_CLEAR_MODE_BOTH = 200, - ENCODER_CLEAR_MODE_INTERNAL = 201 -} encoder_dev_clear_mode_enum; - -int encoder_dev_set_divide(int camera_a_divide, - int camera_b_divide, - int camera_c_divide, - int camera_d_divide); -int encoder_dev_flush(void); -int encoder_dev_set_trigmod(encoder_dev_trig_mode_enum mode); -int encoder_dev_set_clrmod(encoder_dev_clear_mode_enum mode); -int encoder_dev_virtual_trig(int count); -int encoder_dev_init(void); -int encoder_dev_deinit(void); - -#endif diff --git a/source/linux_app/host_computer.c b/source/linux_app/host_computer.c deleted file mode 100644 index 94ecf4c..0000000 --- a/source/linux_app/host_computer.c +++ /dev/null @@ -1,295 +0,0 @@ -/** - * @file host_computer.c - * @brief Commnunicate with host computer. Protocal is described in 下位机和上位机通信协议 V1.4 - * @author miaow (3703781@qq.com) - * @version 1.2 - * @date 2023/05/07 - * @mainpage github.com/NanjingForestryUniversity - * - * @copyright Copyright (c) 2023 miaow - * - * @par Changelog: - * - *
Date Version Author Description - *
2022/01/16 1.0 miaow Write this file - *
2022/08/06 1.1 miaow Add fifob - *
2023/05/07 1.2 miaow Port to b03 branch - *
- */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static char perror_buffer[128]; -/** - * @brief Queue handle structure - */ -typedef struct -{ - queue_uint64_msg_t *cmd_q; // A pointer to the queue for commands - int socket_fd; // The socket fd for receiving commands and data - int need_exit; // The flag variable to indicate whether to exit the loop_thread in this file - pthread_t loop_thread; // The main routine of this module, which parses commands and data from host, puts them into the queue - pthread_mutex_t loop_thread_mutex; // The mutex for loop_thread - pthread_mutex_t is_connected_mutex; - timer_t heartbeat_timer; -} hostcomputer_t; - -static hostcomputer_t _global_structure; -void *loop_thread_func(void *param); -void heartbeat_timer_func(__sigval_t param); - -/** - * @brief Pre initialize host computer module - * @param data_q A pointer to the queue storing the valve data from host computer - * @param cmd_q A pointer#include to the queue storing the cmd from host computer - * @return 0 - success - */ -int hostcomputer_init(queue_uint64_msg_t *cmd_q) -{ - struct sigevent evp; - struct itimerspec ts; - _global_structure.cmd_q = cmd_q; - - pthread_mutex_init(&_global_structure.loop_thread_mutex, NULL); - pthread_mutex_init(&_global_structure.is_connected_mutex, NULL); - pthread_create(&_global_structure.loop_thread, NULL, loop_thread_func, NULL); - memset(&evp, 0, sizeof(evp)); - evp.sigev_value.sival_ptr = &_global_structure.heartbeat_timer; - evp.sigev_notify = SIGEV_THREAD; - evp.sigev_notify_function = heartbeat_timer_func; - timer_create(CLOCK_REALTIME, &evp, &_global_structure.heartbeat_timer); - ts.it_interval.tv_sec = 3; - ts.it_interval.tv_nsec = 0; - ts.it_value.tv_sec = 3; - ts.it_value.tv_nsec = 0; - timer_settime(_global_structure.heartbeat_timer, TIMER_ABSTIME, &ts, NULL); - return 0; -} - -/** - * @brief Receive `size` bytes from a socket. If no more bytes are available at the socket, this function return -1 when timeout reaches. - * @param fd The socket fd - * @param buf Received bytes - * @param size Number of bytes to receive - * @return These calls return the number of bytes received, or -1 if time out occurred - */ -static int recvn(int fd, char *buf, int size) -{ - char *pt = buf; - int count = size; - while (count > 0) - { - int len = recv(fd, pt, count, 0); - // if (len == -1 && (errno == EAGAIN || errno == EWOULDBLOCK)) - // { - // // printf("recv timeout\r\n"); - // } - if (len == -1) - return -1; - else if (len == 0) - return size - count; - pt += len; - count -= len; - } - return size; -} - -/** - * @brief To inspect the status of TCP connection - * @param sock_fd The socket - * @return 0 - Not connected, 1 - connected - */ -static int is_connected(int sock_fd) -{ - struct tcp_info info; - int len = sizeof(info); - pthread_mutex_lock(&_global_structure.is_connected_mutex); - getsockopt(sock_fd, IPPROTO_TCP, TCP_INFO, &info, (socklen_t *)&len); - pthread_mutex_unlock(&_global_structure.is_connected_mutex); - return info.tcpi_state == TCP_ESTABLISHED; -} - -/** - * @brief This function runs in child thread and handles communication with host computer - * @param param NULL - * @return NULL - */ -void *loop_thread_func(void *param) -{ - // printf("loop thread in %s start\r\n", __FILE__); - int need_exit = 0; - char pre; - uint32_t n_bytes; - char type[2]; - char data[20]; - char check[2]; - - while (!need_exit) - { - pthread_mutex_lock(&_global_structure.loop_thread_mutex); - need_exit = _global_structure.need_exit; - pthread_mutex_unlock(&_global_structure.loop_thread_mutex); - // reconnect if not connected - if (!is_connected(_global_structure.socket_fd)) - { - queue_uint64_put(_global_structure.cmd_q, (atoll(data) << 32) | HOSTCOMPUTER_CMD_STOP); - _global_structure.socket_fd = socket(AF_INET, SOCK_STREAM, 0); - struct timeval timeout = {.tv_sec = 10, .tv_usec = 0}; - setsockopt(_global_structure.socket_fd, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout)); - ON_ERROR_RET(_global_structure.socket_fd, "hostcomputer_init", "", NULL); - struct sockaddr_in serAddr; - serAddr.sin_family = AF_INET; - // serAddr.sin_addr.s_addr = inet_addr(HOST_COMPUTER_IP); - inet_pton(AF_INET, HOST_COMPUTER_IP, &serAddr.sin_addr); - serAddr.sin_port = htons(HOST_COMPUTER_PORT); - printf("Connecting host computer..."); - fflush(stdout); - if (connect(_global_structure.socket_fd, (struct sockaddr *)&serAddr, sizeof(struct sockaddr_in)) == -1) - { - sleep(2); - close(_global_structure.socket_fd); - printf("FAILED\r\n"); - continue; - } - printf("OK\r\n"); - } - - // =======================parse the protocol========================================= - if (recvn(_global_structure.socket_fd, (char *)&pre, 1) > 1) - { - // close(_global_structure.socket_fd); - printf("pre_len!=1\r\n"); - continue; - } - if (pre != 0xAA) - { - // close(_global_structure.socket_fd); - // printf("%X ", (int)pre); - // fflush(stdout); - continue; - } - if (recvn(_global_structure.socket_fd, (char *)&n_bytes, 4) != 4) - { - // close(_global_structure.socket_fd); - printf("n_bytes_len!=4\r\n"); - continue; - } - n_bytes = ntohl(n_bytes); - if (n_bytes != 10 && n_bytes != 3) - { - // close(_global_structure.socket_fd); - printf("n_bytes is not 10 or 3\r\n"); - continue; - } - if (recvn(_global_structure.socket_fd, (char *)type, 2) != 2) - { - // close(_global_structure.socket_fd); - printf("type!=2\r\n"); - continue; - } - if (recvn(_global_structure.socket_fd, (char *)data, n_bytes - 2) != n_bytes - 2) - { - // close(_global_structure.socket_fd); - printf("data_len!=n_bytes-2\r\n"); - continue; - } - - data[n_bytes - 2] = 0; - if (recvn(_global_structure.socket_fd, (char *)check, 2) != 2) - { - // close(_global_structure.socket_fd); - printf("check_len!=2\r\n"); - continue; - } - if (recvn(_global_structure.socket_fd, (char *)&pre, 1) != 1) - { - // close(_global_structure.socket_fd); - printf("end_len!=1\r\n"); - continue; - } - if (pre != 0xBB) - { - // close(_global_structure.socket_fd); - printf("end!=0xBB\r\n"); - continue; - } - - // =======================parse the commands========================================= - // commands are reformed as an uint64_t, 0x--------xxxxxxxx, where `-` refers its paramter and `x` is HOSTCOMPUTER_CMD - if (type[0] == 's' && type[1] == 't') - { - // printf("Start put to cmd queue, param:%d\r\n", (int)atoll(data)); - queue_uint64_put(_global_structure.cmd_q, (atoll(data) << 32) | HOSTCOMPUTER_CMD_START); - } - else if (type[0] == 's' && type[1] == 'p') - { - // printf("Stop put to cmd queue, param:%d\r\n", (int)atoll(data)); - queue_uint64_put(_global_structure.cmd_q, (atoll(data) << 32) | HOSTCOMPUTER_CMD_STOP); - } - else if (type[0] == 'p' && type[1] == 'a') - { - // printf("Set camera triggle pulse count put to cmd queue, param:%d\r\n", (int)atoll(data)); - queue_uint64_put(_global_structure.cmd_q, (atoll(data) << 32) | HOSTCOMPUTER_CMD_SETCAMERATRIGPULSECOUNT_A); - } - else if (type[0] == 'p' && type[1] == 'b') - { - // printf("Set camera triggle pulse count put to cmd queue, param:%d\r\n", (int)atoll(data)); - queue_uint64_put(_global_structure.cmd_q, (atoll(data) << 32) | HOSTCOMPUTER_CMD_SETCAMERATRIGPULSECOUNT_B); - } - else if (type[0] == 'p' && type[1] == 'c') - { - // printf("Set camera triggle pulse count put to cmd queue, param:%d\r\n", (int)atoll(data)); - queue_uint64_put(_global_structure.cmd_q, (atoll(data) << 32) | HOSTCOMPUTER_CMD_SETCAMERATRIGPULSECOUNT_C); - } - else if (type[0] == 'p' && type[1] == 'd') - { - // printf("Set camera triggle pulse count put to cmd queue, param:%d\r\n", (int)atoll(data)); - queue_uint64_put(_global_structure.cmd_q, (atoll(data) << 32) | HOSTCOMPUTER_CMD_SETCAMERATRIGPULSECOUNT_D); - } - } - printf("loop thread in %s exit\r\n", __FILE__); - return NULL; -} - -void heartbeat_timer_func(__sigval_t param) -{ - static uint8_t heartbeat_packet[] = {0xaa, 0x00, 0x00, 0x00, 0x03, 'h', 'b', 0xff, 0xff, 0xff, 0xbb}; - if (is_connected(_global_structure.socket_fd)) - write(_global_structure.socket_fd, heartbeat_packet, sizeof(heartbeat_packet)); -} - -/** - * @brief Deinitialize and release resources used by host computer module - * @return int - */ -int hostcomputer_deinit() -{ - timer_delete(_global_structure.heartbeat_timer); - - pthread_mutex_lock(&_global_structure.loop_thread_mutex); - _global_structure.need_exit = 1; - pthread_mutex_unlock(&_global_structure.loop_thread_mutex); - pthread_join(_global_structure.loop_thread, NULL); - pthread_mutex_destroy(&_global_structure.loop_thread_mutex); - - close(_global_structure.socket_fd); - _global_structure.socket_fd = 0; - _global_structure.need_exit = 0; - _global_structure.cmd_q = NULL; - return 0; -} diff --git a/source/linux_app/host_computer.h b/source/linux_app/host_computer.h deleted file mode 100644 index 7443a78..0000000 --- a/source/linux_app/host_computer.h +++ /dev/null @@ -1,45 +0,0 @@ -/** - * @file host_computer.h - * @brief Commnunicate with host computer. Protocal is described in 下位机和上位机通信协议 V1.4 - * @author miaow (3703781@qq.com) - * @version 1.2 - * @date 2023/05/07 - * @mainpage github.com/NanjingForestryUniversity - * - * @copyright Copyright (c) 2023 miaow - * - * @par Changelog: - * - *
Date Version Author Description - *
2022/01/16 1.0 miaow Write this file - *
2022/08/06 1.1 miaow Add fifob - *
2023/05/07 1.2 miaow Port to b03 branch - *
- */ -#ifndef __HOST_COMPUTER_H -#define __HOST_COMPUTER_H - -#include -#include -#include - -#define HOST_COMPUTER_IP "192.168.2.125" -#define HOST_COMPUTER_PORT 13452 - -/** - * @brief The commonds, ref 下位机和上位机通信协议V1.4 - */ -enum HOSTCOMPUTER_CMD -{ - HOSTCOMPUTER_CMD_START = 1, - HOSTCOMPUTER_CMD_STOP = 2, - HOSTCOMPUTER_CMD_SETCAMERATRIGPULSECOUNT_A = 3, - HOSTCOMPUTER_CMD_SETCAMERATRIGPULSECOUNT_B = 4, - HOSTCOMPUTER_CMD_SETCAMERATRIGPULSECOUNT_C = 5, - HOSTCOMPUTER_CMD_SETCAMERATRIGPULSECOUNT_D = 6, -}; - -int hostcomputer_init(queue_uint64_msg_t *cmd_q); -int hostcomputer_deinit(void); - -#endif diff --git a/source/linux_app/main.c b/source/linux_app/main.c deleted file mode 100644 index 659631f..0000000 --- a/source/linux_app/main.c +++ /dev/null @@ -1,159 +0,0 @@ -/** - * @file main.c - * @brief Excute the commands from host_computer - * @author miaow (3703781@qq.com) - * @version 1.2 - * @date 2023/05/27 - * @mainpage github.com/NanjingForestryUniversity - * - * @copyright Copyright (c) 2023 miaow - * - * @par Changelog: - * - *
Date Version Author Description - *
2022/06/12 1.0 miaow Write this file - *
2023/05/07 1.1 miaow Port to b03 - *
2023/05/27 1.2 miaow Fix bug caused by the missing encoder_dev_set_clrmod() - *
- */ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/** - * @brief Value of state machine - */ -typedef enum -{ - SLEEPING = 0, - RUNNING = 1, -} status_enum_t; - -queue_uint64_msg_t cmd_queue = {0}; - -static status_enum_t status = SLEEPING; -typedef struct -{ - uint32_t a; - uint32_t b; - uint32_t c; - uint32_t d; -} camera_trigger_pulse_count_typedef; - -camera_trigger_pulse_count_typedef camera_trigger_pulse_count = { - .a = 100, - .b = 100, - .c = 100, - .d = 100}; - -void process_cmd(uint64_t *cmd); - -/** - * @brief Read from the cmd_queue and excute the command every 100ms. - * @param argc not used - * @param argv not used - * @return int should not return. - */ -int main(int argc, char *argv[]) -{ - uint64_t cmd; - queue_uint64_init(&cmd_queue, 9999); - - // Initialize drivers and clear all caches - encoder_dev_init(); - encoder_dev_set_trigmod(ENCODER_TRIG_MODE_INTERNEL); - encoder_dev_set_divide(8, 8, 8, 8); - - hostcomputer_init(&cmd_queue); - printf("\r\n>>>>>\r\nstatus==SLEEPING\r\n<<<<<\r\n\r\n"); - - // Read from the cmd_queue and excute the command every 100ms - while (1) - { - if (queue_uint64_get(&cmd_queue, &cmd) == 0) - process_cmd(&cmd); - usleep(1000); - } - - // Never run here - hostcomputer_deinit(); - encoder_dev_set_divide(100,100,100,100); - encoder_dev_virtual_trig(20); - - encoder_dev_set_trigmod(ENCODER_TRIG_MODE_INTERNEL); - encoder_dev_deinit(); - queue_uint64_deinit(&cmd_queue); - - return 0; -} - -/** - * @brief Excute the command and control the states - * @param cmd The command to be excuted - */ -void process_cmd(uint64_t *cmd) -{ - int tmp_cmd = (int)*cmd; - int tmp_data = (int)(*cmd >> 32); - - // Only in the SLEEPING state, it resbonds to START or TEST command. - if (status == SLEEPING) - { - if (tmp_cmd == HOSTCOMPUTER_CMD_START) - { - // Before running, clear the hardware fifo and hardware encoder. Then, the two dividers and delay value should be set. - // Also, the hareware encoder is expected to receiving pluse of encoder: the EXTERNAL mode - encoder_dev_flush(); - - encoder_dev_set_divide(camera_trigger_pulse_count.a, - camera_trigger_pulse_count.b, - camera_trigger_pulse_count.c, - camera_trigger_pulse_count.d); - - encoder_dev_set_trigmod(ENCODER_TRIG_MODE_EXTERNEL); - encoder_dev_set_clrmod(ENCODER_CLEAR_MODE_BOTH); - printf("\r\n>>>>>\r\nstatus==RUNNING\r\ncamera_a=%d\r\ncamera_b=%d\r\ncamera_c=%d\r\ncamera_d=%d\r\n<<<<<\r\n\r\n", - camera_trigger_pulse_count.a, - camera_trigger_pulse_count.b, - camera_trigger_pulse_count.c, - camera_trigger_pulse_count.d); - status = RUNNING; - } - else if (tmp_cmd == HOSTCOMPUTER_CMD_SETCAMERATRIGPULSECOUNT_A) - { - camera_trigger_pulse_count.a = tmp_data; - } - else if (tmp_cmd == HOSTCOMPUTER_CMD_SETCAMERATRIGPULSECOUNT_B) - { - camera_trigger_pulse_count.b = tmp_data; - } - else if (tmp_cmd == HOSTCOMPUTER_CMD_SETCAMERATRIGPULSECOUNT_C) - { - camera_trigger_pulse_count.c = tmp_data; - } - else if (tmp_cmd == HOSTCOMPUTER_CMD_SETCAMERATRIGPULSECOUNT_D) - { - camera_trigger_pulse_count.d = tmp_data; - } - } - // Only in RUNNING state, the lower machine responds to STOP command. - else if (status == RUNNING) - { - if (tmp_cmd == HOSTCOMPUTER_CMD_STOP) - { - // Hardware encoder is flushed for a fresh start. - encoder_dev_set_trigmod(ENCODER_TRIG_MODE_INTERNEL); - encoder_dev_set_divide(4, 4, 4, 4); - encoder_dev_virtual_trig(20); - encoder_dev_flush(); - status = SLEEPING; - printf("\r\n>>>>>\r\nstatus==SLEEPING\r\n<<<<<\r\n\r\n"); - } - } -} diff --git a/source/linux_app/main.h b/source/linux_app/main.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/linux_app/queue_uint64.c b/source/linux_app/queue_uint64.c deleted file mode 100644 index b49d43c..0000000 --- a/source/linux_app/queue_uint64.c +++ /dev/null @@ -1,199 +0,0 @@ - -/** - * @file queue_uint64.c - * @brief Thread safe queue, which stores uint64_t - * @details Call queue_init(queue_uint64_msg_t *q, int max_count) paired with queue_deinit(queue_uint64_msg_t *q) as their names imply, queue_initstruct(queue_uint64_msg_t *q)Initialize the message queue structure,*queue_get(queue_uint64_msg_t *q) and queue_put(queue_uint64_msg_t *q, void *data) In and out of the team operation - * @author miaow (3703781@qq.com) - * @version 1.0 - * @date 2021/01/10 - * @mainpage github.com/NanjingForestryUniversity - * - * @copyright Copyright (c) 2022 miaow - * - * @par Changelog: - * - *
Date Version Author Description - *
2022/01/09 1.0 miaow Write this file - *
- */ - -#include -#include -#ifdef QUEUE_UINT64_DEBUG -#include -#include -#endif -#include - -/** - * @brief Take out the first item from the circular queue - * @param q The queue handler - * @param data A buffer of uint64_t[1] to store the data taken out - * @return 0 - success, -1 - failed - */ -int queue_uint64_get(queue_uint64_msg_t *q, uint64_t *data) -{ - pthread_mutex_lock(&q->_mux); - // while (q->lget == q->lput && 0 == q->nData) - // { - // // The reason program goes here: assuming there are 2 consmer threads block in this function - // // One wakes first and consumes 2 data quickly before another wakes - // // In the circumstances that the queue contains 2 items formerly, the second thread should not get data from an empty queue - // // This may happen when 2 queue_puts was called by producers and at that moment 2 consmer threads have been blocked - - // // It is designed as a circular queue, where lget==lput means: - // // 1:nData!=0,a full queue - // // 2:nData为0,an empty queue - // q->nEmptyThread++; - // pthread_cond_wait(&q->_cond_get, &q->_mux); - // q->nEmptyThread--; - // } - if (q->nData == 0) - { - pthread_mutex_unlock(&q->_mux); - return -1; - } -#ifdef QUEUE_UINT64_DEBUG - printf("get data! lget:%d, ", q->lget); -#endif - *data = (q->buffer)[q->lget++]; -#ifdef QUEUE_UINT64_DEBUG - printf("data:% lld", *data); -#endif - if (q->lget == q->size) - { - // this is a circular queue - q->lget = 0; - } - q->nData--; -#ifdef QUEUE_UINT64_DEBUG - printf(", nData:%d\r\n", q->nData); -#endif - // if (q->nFullThread) - // { - // // call pthread_cond_signal only when necessary, enter the kernel state as little as possible - // pthread_cond_signal(&q->_cond_put); - // } - pthread_mutex_unlock(&q->_mux); - return 0; -} - -/** - * @brief Initialize the queue with a size (maximum count of items) specified in q->size - * @param q The queue hander to be initialized - * @return 0 - success, -1 - failed - * @note q->size should be set before calling this function - */ -int queue_uint64_initstruct(queue_uint64_msg_t *q) -{ - q->buffer = malloc(q->size * sizeof(uint64_t)); - if (q->buffer == NULL) - return -1; - pthread_mutex_init(&q->_mux, NULL); - // pthread_cond_init(&q->_cond_get, NULL); - // pthread_cond_init(&q->_cond_put, NULL); - return 0; -} - -/** - * @brief Initialize the queue - * @param q The queue hander to be initialized - * @param max_count Maximum count of items in the queue - * @return 0 - success, -1 - failed - */ -int queue_uint64_init(queue_uint64_msg_t *q, int max_count) -{ - q->size = max_count; - return queue_uint64_initstruct(q); -} - -/** - * @brief Deinitialize the queue - * @param q The queue handle - * @return 0 - success - */ -int queue_uint64_deinit(queue_uint64_msg_t *q) -{ - if (q->buffer != NULL) - { - free(q->buffer); - q->buffer = NULL; - } - pthread_mutex_destroy(&q->_mux); - // pthread_cond_destroy(&q->_cond_get); - // pthread_cond_destroy(&q->_cond_put); - q->size = 0; - q->nData = 0; - q->lget = 0; - q->lput = 0; - // q->nEmptyThread = 0; - // q->nFullThread = 0; - return 0; -} - -/** - * @brief Put one item into the circular queue - * @param q The queue handle - * @param data The item to put - * @return 0 - success, -1 - failed - */ -int queue_uint64_put(queue_uint64_msg_t *q, uint64_t data) -{ - pthread_mutex_lock(&q->_mux); - // while (q->lget == q->lput && q->nData) - // { - // q->nFullThread++; - // pthread_cond_wait(&q->_cond_put, &q->_mux); - // q->nFullThread--; - // } - if (q->lget == q->lput && q->nData) - { - pthread_mutex_unlock(&q->_mux); - return -1; - } -#ifdef QUEUE_UINT64_DEBUG - printf("put data! lput:%d, data:%lld", q->lput, data); -#endif - (q->buffer)[q->lput++] = data; - if (q->lput == q->size) - { - q->lput = 0; - } - q->nData++; -#ifdef QUEUE_UINT64_DEBUG - printf(" nData:%d\n", q->nData); -#endif - // if (q->nEmptyThread) - // { - // pthread_cond_signal(&q->_cond_get); - // } - pthread_mutex_unlock(&q->_mux); - return 0; -} - -/** - * @brief Clear the circular queue - * @param q The queue handle - * @return 0 - success, -1 - failed - */ -int queue_uint64_clear(queue_uint64_msg_t *q) -{ - pthread_mutex_lock(&q->_mux); - // while (q->lget == q->lput && q->nData) - // { - // q->nFullThread++; - // pthread_cond_wait(&q->_cond_put, &q->_mux); - // q->nFullThread--; - // } - q->lget = q->lput = q->nData = 0; -#ifdef QUEUE_UINT64_DEBUG - printf("clear!\r\n"); -#endif - - // if (q->nEmptyThread) - // { - // pthread_cond_signal(&q->_cond_get); - // } - pthread_mutex_unlock(&q->_mux); - return 0; -} \ No newline at end of file diff --git a/source/linux_app/queue_uint64.h b/source/linux_app/queue_uint64.h deleted file mode 100644 index 74990f6..0000000 --- a/source/linux_app/queue_uint64.h +++ /dev/null @@ -1,49 +0,0 @@ -/** - * @file queue_uint64.h - * @brief Thread safe queue, which stores uint64_t - * @details Call queue_init(queue_uint64_msg_t *q, int max_count) paired with queue_deinit(queue_uint64_msg_t *q) as their names imply, queue_initstruct(queue_uint64_msg_t *q)Initialize the message queue structure,*queue_get(queue_uint64_msg_t *q) and queue_put(queue_uint64_msg_t *q, void *data) In and out of the team operation - * @author miaow (3703781@qq.com) - * @version 1.0 - * @date 2021/01/10 - * @mainpage github.com/NanjingForestryUniversity - * - * @copyright Copyright (c) 2022 miaow - * - * @par Changelog: - * - *
Date Version Author Description - *
2022/01/09 1.0 miaow Write this file - *
- */ -#if !defined(__QUEUE_UINT64_H) -#define __QUEUE_UINT64_H - -#include -#include - -/** - * @brief Queue handle structure - */ -typedef struct -{ - uint64_t *buffer; // 缓冲数据, .buffer = msg - int size; // 队列大小,使用的时候给出稍大的size,可以减少进入内核态的操作 - int lget; // 取队列数据的偏移量 - int lput; // 放队列数据的偏移量 - int nData; // 队列中数据的个数,用来判断队列满/空 - // int nFullThread; // 由于队列满而阻塞在put_queue的线程个数 - // int nEmptyThread; // 由于队列空而阻塞在get_queue的线程个数 - pthread_mutex_t _mux; - // pthread_cond_t _cond_get, _cond_put; -} queue_uint64_msg_t; - -// #define QUEUE_UINT64_DEBUG - -int queue_uint64_get(queue_uint64_msg_t *q, uint64_t *data); -int queue_uint64_put(queue_uint64_msg_t *q, uint64_t data); -int queue_uint64_initstruct(queue_uint64_msg_t *q); -int queue_uint64_init(queue_uint64_msg_t *q, int max_count); -int queue_uint64_clear(queue_uint64_msg_t *q); -int queue_uint64_deinit(queue_uint64_msg_t *q); - -#endif // __QUEUE_UINT64_H diff --git a/source/linux_app/version b/source/linux_app/version deleted file mode 100644 index a58941b..0000000 --- a/source/linux_app/version +++ /dev/null @@ -1 +0,0 @@ -1.3 \ No newline at end of file diff --git a/source/linux_driver/encoder.c b/source/linux_driver/encoder.c deleted file mode 100644 index 1d26fd1..0000000 --- a/source/linux_driver/encoder.c +++ /dev/null @@ -1,325 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define ENCODER_CNT 1 -#define ENCODER_NAME "encoder" - -#define ENCODER_CMD_FUNCTION_CLEAR 1 -#define ENCODER_CMD_FUNCTION_VIRT_INPUT 2 - -#define ENCODER_CMD_INPUT_MODE_EXTERNEL 100 -#define ENCODER_CMD_INPUT_MODE_INTERNEL 101 - -#define ENCODER_CMD_CLEAR_MODE_BOTH 200 -#define ENCODER_CMD_CLEAR_MODE_INTERNAL 201 - -/* - * 相关寄存器地址定义 - */ -#define ENCODER_REG_BASE 0x43C10000 -#define ENCODER_REG_0_OFFSET 0x00000000 -#define ENCODER_REG_1_OFFSET 0x00000004 -#define ENCODER_REG_2_OFFSET 0x00000008 -#define ENCODER_REG_3_OFFSET 0x0000000C -#define ENCODER_REG_4_OFFSET 0x00000010 -#define ENCODER_REG_5_OFFSET 0x00000014 -#define ENCODER_REG_6_OFFSET 0x00000018 -#define ENCODER_REG_7_OFFSET 0x0000001C - -#define ENCODER_CR_ICO_MASK ((u32)(1 << 3)) // 仅限内部清除缓存 (Iternal Clear Only) 0: 允许外部输入和CLR位共同控制清除缓存,1: 仅允许CLR位清除缓存 -#define ENCODER_CR_VTS_MASK ((u32)(1 << 2)) // 内部触发信号 (Virtual Triggle Signal) MOD位置1时,由上位机软件写入,将该位信号作为触发信号 -#define ENCODER_CR_MOD_MASK ((u32)(1 << 1)) // 模式选择 (Mode) 0: 外部触发模式,外部触发编码器转动, 1: 内部触发模式,上位机软件模拟触发信号 -#define ENCODER_CR_CLR_MASK ((u32)(1 << 0)) // 清除缓存 (Clear) 清除编码和分频控制器内部的分频计数值,不影响VDIV和CDIV - -static void __iomem *encoder_cr_addr; -static void __iomem *encoder_vdivr_addr; -static void __iomem *encoder_cdivra_addr; -static void __iomem *encoder_cdivrb_addr; -static void __iomem *encoder_cdivrc_addr; -static void __iomem *encoder_cdivrd_addr; - -struct encoder_dev -{ - dev_t devid; - struct cdev cdev; - struct class *class; - struct device *device; - int major; - int minor; -}; - -typedef struct -{ - u32 valve_divide_value; - u32 camera_a_divide_value; - u32 camera_b_divide_value; - u32 camera_c_divide_value; - u32 camera_d_divide_value; -} kernelbuf_typedef; - -static struct encoder_dev encoder; - -/* - * @description : 打开设备 - * @param – inode : 传递给驱动的inode - * @param - filp : 设备文件,file结构体有个叫做private_data的成员变量 - * 一般在open的时候将private_data指向设备结构体。 - * @return : 0 成功;其他 失败 - */ -static int encoder_open(struct inode *inode, struct file *filp) -{ - u32 data = readl(encoder_cr_addr); - writel(data | ENCODER_CR_CLR_MASK, encoder_cr_addr); - return 0; -} - -/* - * @description : 向设备写数据 - * @param - filp : 设备文件,表示打开的文件描述符 - * @param - buf : 要写给设备写入的数据 - * @param - cnt : 要写入的数据长度 - * @param - offt : 相对于文件首地址的偏移 - * @return : 写入的字节数,如果为负值,表示写入失败 - */ -static ssize_t encoder_write(struct file *filp, const char __user *buf, size_t cnt, loff_t *offt) -{ - int ret; - - u32 data; - kernelbuf_typedef kern_buf = { - .valve_divide_value = 0,writel - .camera_a_divide_value = 0, - .camera_b_divide_value = 0, - .camera_c_divide_value = 0, - .camera_d_divide_value = 0, - }; - if (cnt != sizeof(kern_buf)) - { - printk(KERN_ERR "encoder write: cnt error, cnt=%d", cnt); - return -EFAULT; - } - ret = copy_from_user(&kern_buf, buf, cnt); // 得到应用层传递过来的数据 - if (ret < 0) - { - printk(KERN_ERR "kernel write failed!\r\n"); - return -EFAULT; - } - // 最小分频值为2 - if (kern_buf.valve_divide_value < 2 || kern_buf.camera_a_divide_value < 2 || - kern_buf.camera_b_divide_value < 2 || kern_buf.camera_c_divide_value < 2 || - kern_buf.camera_d_divide_value < 2) - return -EFAULT; - - // 写入0后清除ENCODER内部计数器缓存清除 - data = readl(encoder_cr_addr); - writel(data & ~ENCODER_CR_CLR_MASK, encoder_cr_addr); - - writel(kern_buf.valve_divide_value, encoder_vdivr_addr); - writel(kern_buf.camera_a_divide_value, encoder_cdivra_addr); - writel(kern_buf.camera_b_divide_value, encoder_cdivrb_addr); - writel(kern_buf.camera_c_divide_value, encoder_cdivrc_addr); - writel(kern_buf.camera_d_divide_value, encoder_cdivrd_addr); - - // 写入1退出清除状态,使得ENCODER内部计数器能正常工作,内部计数器在正常工作前已经被清零 - writel(data | ENCODER_CR_CLR_MASK, encoder_cr_addr); - - return cnt; -} - -/* - * @description : 关闭/释放设备 - * @param – filp : 要关闭的设备文件(文件描述符) - * @return : 0 成功;其他 失败 - */ -static int encoder_release(struct inode *inode, struct file *filp) -{ - u32 data = readl(encoder_cr_addr); - writel(data & ~ENCODER_CR_CLR_MASK, encoder_cr_addr); - return 0; -} - -static long encoder_ioctl(struct file *fp, unsigned int cmd, unsigned long tmp) -{ - u32 data, cmd_parsed; - if (_IOC_TYPE(cmd) != 'D' || _IOC_DIR(cmd) != _IOC_WRITE) - { - printk(KERN_ERR "IOC_TYPE or IOC_WRITE error: IOC_TYPE=%c, IOC_WRITE=%d\r\n", _IOC_TYPE(cmd), _IOC_DIR(cmd)); - return -EINVAL; - } - cmd_parsed = _IOC_NR(cmd); - data = readl(encoder_cr_addr); - if (cmd_parsed == ENCODER_CMD_FUNCTION_CLEAR) - { - writel(data & ~ENCODER_CR_CLR_MASK, encoder_cr_addr); // 写入0后清除ENCODER内部计数器缓存清除 - writel(data | ENCODER_CR_CLR_MASK, encoder_cr_addr); // 写入1退出清除状态,使得ENCODER内部计数器能正常工作,内部计数器在正常工作前已经被清零 - } - else if (cmd_parsed == ENCODER_CMD_INPUT_MODE_EXTERNEL) - { - // 设为外部触发模式 - writel(data & ~ENCODER_CR_MOD_MASK, encoder_cr_addr); - } - else if (cmd_parsed == ENCODER_CMD_INPUT_MODE_INTERNEL) - { - // 设为内部触发模式 - writel(data | ENCODER_CR_MOD_MASK, encoder_cr_addr); - } - else if (cmd_parsed == ENCODER_CMD_FUNCTION_VIRT_INPUT) - { - int i; - // 虚拟触发,tmp为周期数 - // 1. 设为内部触发模式 - writel(data | ENCODER_CR_MOD_MASK, encoder_cr_addr); - - // 2. 产生虚拟的高低电平 - for (i = 0; i < tmp; i++) - { - writel(data & ~ENCODER_CR_VTS_MASK, encoder_cr_addr); - writel(data | ENCODER_CR_VTS_MASK, encoder_cr_addr); - } - - // 3. 恢复为原来的状态和模式 - writel(data, encoder_cr_addr); - } - else if (cmd_parsed == ENCODER_CMD_CLEAR_MODE_BOTH) - { - // 设为允许内部和外部信号清除缓存 - writel(data & ~ENCODER_CR_ICO_MASK, encoder_cr_addr); - } - else if (cmd_parsed == ENCODER_CMD_CLEAR_MODE_INTERNAL) - { - // 设为仅允许内部清除缓存 - writel(data | ENCODER_CR_ICO_MASK, encoder_cr_addr); - } - return 0; -} - -// 设备操作函数 -static struct file_operations encoder_fops = { - .owner = THIS_MODULE, - .open = encoder_open, - .write = encoder_write, - .release = encoder_release, - .unlocked_ioctl = encoder_ioctl, -}; - -static int __init encoder_init(void) -{ - int ret; - u32 data; - // 寄存器地址映射 - encoder_cr_addr = ioremap(ENCODER_REG_BASE + ENCODER_REG_0_OFFSET, 4); - encoder_vdivr_addr = ioremap(ENCODER_REG_BASE + ENCODER_REG_1_OFFSET, 4); - encoder_cdivra_addr = ioremap(ENCODER_REG_BASE + ENCODER_REG_2_OFFSET, 4); - encoder_cdivrb_addr = ioremap(ENCODER_REG_BASE + ENCODER_REG_3_OFFSET, 4); - encoder_cdivrc_addr = ioremap(ENCODER_REG_BASE + ENCODER_REG_4_OFFSET, 4); - encoder_cdivrd_addr = ioremap(ENCODER_REG_BASE + ENCODER_REG_5_OFFSET, 4); - - // 创建设备号 - if (encoder.major) - { - encoder.devid = MKDEV(encoder.major, 0); - ret = register_chrdev_region(encoder.devid, ENCODER_CNT, ENCODER_NAME); - if (ret) - goto FAIL_REGISTER_CHR_DEV; - } - else - { - ret = alloc_chrdev_region(&encoder.devid, 0, ENCODER_CNT, ENCODER_NAME); - if (ret) - goto FAIL_REGISTER_CHR_DEV; - encoder.major = MAJOR(encoder.devid); - encoder.minor = MINOR(encoder.devid); - } - - // 初始化cdev - encoder.cdev.owner = THIS_MODULE; - cdev_init(&encoder.cdev, &encoder_fops); - - // 添加cdev - ret = cdev_add(&encoder.cdev, encoder.devid, ENCODER_CNT); - if (ret) - goto FAIL_ADD_CDEV; - - // 创建类 - encoder.class = class_create(THIS_MODULE, ENCODER_NAME); - if (IS_ERR(encoder.class)) - { - ret = PTR_ERR(encoder.class); - goto FAIL_CREATE_CLASS; - } - - // 创建设备 - encoder.device = device_create(encoder.class, NULL, encoder.devid, NULL, ENCODER_NAME); - if (IS_ERR(encoder.device)) - { - ret = PTR_ERR(encoder.device); - goto FAIL_CREATE_DEV; - } - - // 默认分频系数1000 - data = readl(encoder_cr_addr); - writel(data & ~ENCODER_CR_CLR_MASK, encoder_cr_addr); // 清除硬件计数器缓存 - writel(1000, encoder_vdivr_addr); // 设置阀触发分频 - writel(1000, encoder_cdivra_addr); // 设置相机a触发分频 - writel(1000, encoder_cdivrb_addr); // 设置相机b触发分频 - writel(1000, encoder_cdivrc_addr); // 设置相机c触发分频 - writel(1000, encoder_cdivrd_addr); // 设置相机d触发分频 - writel(data | ENCODER_CR_CLR_MASK, encoder_cr_addr); // 清除完毕 - return 0; - -FAIL_CREATE_DEV: - class_destroy(encoder.class); - -FAIL_CREATE_CLASS: - cdev_del(&encoder.cdev); - -FAIL_ADD_CDEV: - unregister_chrdev_region(encoder.devid, ENCODER_CNT); - -FAIL_REGISTER_CHR_DEV: - iounmap(encoder_cr_addr); - iounmap(encoder_vdivr_addr); - iounmap(encoder_cdivra_addr); - iounmap(encoder_cdivrb_addr); - iounmap(encoder_cdivrc_addr); - iounmap(encoder_cdivrd_addr); - - return ret; -} - -static void __exit encoder_exit(void) -{ - // 注销设备 - device_destroy(encoder.class, encoder.devid); - - // 注销类 - class_destroy(encoder.class); - - // 删除cdev - cdev_del(&encoder.cdev); - - // 注销设备号 - unregister_chrdev_region(encoder.devid, ENCODER_CNT); - - // 取消内存映射 - iounmap(encoder_cr_addr); - iounmap(encoder_vdivr_addr); - iounmap(encoder_cdivra_addr); - iounmap(encoder_cdivrb_addr); - iounmap(encoder_cdivrc_addr); - iounmap(encoder_cdivrd_addr); -} - -module_init(encoder_init); -module_exit(encoder_exit); -MODULE_AUTHOR("DingKun"); -MODULE_DESCRIPTION("driver for hardware encoder in the platform"); -MODULE_LICENSE("GPL"); diff --git a/source/linux_driver/encoder_drv_test/Makefile b/source/linux_driver/encoder_drv_test/Makefile deleted file mode 100644 index b188313..0000000 --- a/source/linux_driver/encoder_drv_test/Makefile +++ /dev/null @@ -1,86 +0,0 @@ -CROSS_COMPILE ?= /home/lyz/software/gcc-linaro-12.2.1-arm-linux-gnueabihf/bin/arm-linux-gnueabihf- - -TARGET := target -BUILD_DIR := build - -ifeq ("$(origin V)", "command line") - KBUILD_VERBOSE = $(V) -endif -ifndef KBUILD_VERBOSE - KBUILD_VERBOSE = 0 -endif - -ifeq ($(KBUILD_VERBOSE),1) - quiet = - Q = -else - quiet=quiet_ - Q = @ -endif - -ifneq ($(filter 4.%,$(MAKE_VERSION)),) # make-4 -ifneq ($(filter %s ,$(firstword x$(MAKEFLAGS))),) - quiet=silent_ -endif -else # make-3.8x -ifneq ($(filter s% -s%,$(MAKEFLAGS)),) - quiet=silent_ -endif -endif - - -SRC := $(wildcard *.c) -ASM_SRC := $(wildcard *.s) -OBJ := $(addprefix $(BUILD_DIR)/, $(notdir $(SRC:.c=.o))) -ASM_OBJ := $(addprefix $(BUILD_DIR)/, $(notdir $(ASM_SRC:.s=.o))) -DIS := $(addprefix $(BUILD_DIR)/, $(notdir $(SRC:.c=.dis))) -ASM_DIS := $(addprefix $(BUILD_DIR)/, $(notdir $(ASM_SRC:.s=.dis))) - -_TARGET := $(BUILD_DIR)/$(TARGET) -TARGET_DIS := $(BUILD_DIR)/$(TARGET).dis - -LD = $(CROSS_COMPILE)ld -CC = $(CROSS_COMPILE)gcc -CPP = $(CC) -E -AR = $(CROSS_COMPILE)ar -LDR = $(CROSS_COMPILE)ldr -STRIP = $(CROSS_COMPILE)strip -OBJCOPY = $(CROSS_COMPILE)objcopy -OBJDUMP = $(CROSS_COMPILE)objdump -CFLAGS = -g -std=gnu99 -Wall -I. -LDFLAGS = -lpthread -lc -lm -lrt - -.SECONDARY: - -.PHONY:all -all: $(_TARGET) $(DIS) $(ASM_DIS) $(TARGET_DIS) - -$(BUILD_DIR)/%.i:%.c %.h Makefile | $(BUILD_DIR) - $(Q)$(CC) -E $(CFLAGS) $< -o $@ -$(BUILD_DIR)/%.s:$(BUILD_DIR)/%.i Makefile | $(BUILD_DIR) - $(Q)$(CC) -S $(CFLAGS) $< -o $@ -$(BUILD_DIR)/%.o:$(BUILD_DIR)/%.s Makefile | $(BUILD_DIR) - $(Q)$(CC) -c $(CFLAGS) $< -o $@ -$(BUILD_DIR)/%.o:%.s Makefile | $(BUILD_DIR) - $(Q)$(CC) -c $(CFLAGS) $< -o $@ -$(BUILD_DIR)/%.dis:$(BUILD_DIR)/%.o Makefile | $(BUILD_DIR) - $(Q)$(OBJDUMP) -s -d $< > $@ -$(TARGET_DIS):$(_TARGET) Makefile | $(BUILD_DIR) - $(Q)$(OBJDUMP) -s -d $< > $@ -$(_TARGET):$(OBJ) $(ASM_OBJ) Makefile | $(BUILD_DIR) - $(Q)$(CC) $(OBJ) $(ASM_OBJ) $(LDFLAGS) -o $@ - - -.PHONY:clean -clean: - $(Q)$(RM) $(BUILD_DIR)/* -f - -.PHONY:install -install:$(TARGET) - $(Q)chmod 777 $(TARGET) - -.PHONY:$(BUILD_DIR) -$(BUILD_DIR): - $(Q)if [ ! -d $(BUILD_DIR) ]; then mkdir -p $@; fi - - \ No newline at end of file diff --git a/source/linux_driver/encoder_drv_test/common.h b/source/linux_driver/encoder_drv_test/common.h deleted file mode 100644 index 6578f99..0000000 --- a/source/linux_driver/encoder_drv_test/common.h +++ /dev/null @@ -1,46 +0,0 @@ -/** - * @file common.h - * @brief Common macros. - * @author miaow (3703781@qq.com) - * @version 1.0 - * @date 2022/06/12 - * @mainpage github.com/NanjingForestryUniversity - * - * @copyright Copyright (c) 2022 miaow - * - * @par Changelog: - * - *
Date Version Author Description - *
2022/06/12 1.0 miaow Write this file - *
- */ -#ifndef __COMMON_H -#define __COMMON_H - -#include -#include - -#define ON_ERROR(res, message1, message2) \ - if (res < 0) \ - { \ - sprintf(perror_buffer, "error %d at %s:%d, %s, %s", res, __FILE__, __LINE__, message1, message2); \ - perror(perror_buffer); \ - } - -#define ON_ERROR_RET_VOID(res, message1, message2) \ - ON_ERROR(res, message1, message2); \ - if (res < 0) \ - { \ - res = 0; \ - return; \ - } - -#define ON_ERROR_RET(res, message1, message2, retval) \ - ON_ERROR(res, message1, message2); \ - if (res < 0) \ - { \ - res = 0; \ - return retval; \ - } - -#endif \ No newline at end of file diff --git a/source/linux_driver/encoder_drv_test/encoder_dev.c b/source/linux_driver/encoder_drv_test/encoder_dev.c deleted file mode 100644 index 0ac9d88..0000000 --- a/source/linux_driver/encoder_drv_test/encoder_dev.c +++ /dev/null @@ -1,153 +0,0 @@ -/** - * @file encoder_dev.c - * @brief Manage the hardware encoder unit - * @author miaow, lyz (3703781@qq.com) - * @version 0.11 - * @date 2022/04/26 - * @mainpage github.com/NanjingForestryUniversity - * - * @copyright Copyright (c) 2023 miaow, lyz - * - * @par Changelog: - * - *
Date Version Author Description - *
2022/06/11 0.9 Miaow Write this module - *
2022/04/11 0.10 lyz Add seprate dividers up to 4 cameras - *
2023/04/26 0.11 Miaow Add Clear mode - *
- */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define ENCODER_CMD_FUNCTION_CLEAR 1 -#define ENCODER_CMD_FUNCTION_VIRT_INPUT 2 - -static int encoder_dev_fd = -1; -static char perror_buffer[128]; - -static struct -{ - uint32_t valve_divide_value; - uint32_t camera_a_divide_value; - uint32_t camera_b_divide_value; - uint32_t camera_c_divide_value; - uint32_t camera_d_divide_value; -} encoder_dev_divide_value_structure; - -/** - * @brief Initialize the hardware encoder unit - * @note This function just open the file descriptor of the hardware encoder unit - * @return 0 - success, other - error - */ -int encoder_dev_init() -{ - encoder_dev_fd = open(ENCODER_DEV_PATH, O_RDWR); - ON_ERROR_RET(encoder_dev_fd, "", "", -1); - encoder_dev_set_divide(100, 100, 100, 100, 100); - return 0; -} - -/** - * @brief Set the two divider in the hareware encoder unit. - * @param camera_a_divide the frequency division factor between the encoder signal and camera a triggle signal - * Set ENCODER_DEV_DIVIDE_NOT_TO_SET to skip changing the division facter - * @param camera_b_divide the frequency division factor between the encoder signal and camera b triggle signal - * Set ENCODER_DEV_DIVIDE_NOT_TO_SET to skip changing the division facter - * @param camera_c_divide the frequency division factor between the encoder signal and camera c triggle signal - * Set ENCODER_DEV_DIVIDE_NOT_TO_SET to skip changing the division facter - * @param camera_d_divide the frequency division factor between the encoder signal and camera d triggle signal - * Set ENCODER_DEV_DIVIDE_NOT_TO_SET to skip changing the division facter - * @return 0 - success, other - error - */ -int encoder_dev_set_divide(int camera_a_divide, - int camera_b_divide, - int camera_c_divide, - int camera_d_divide) -{ - if (valve_divide != ENCODER_DEV_DIVIDE_NOT_TO_SET) - encoder_dev_divide_value_structure.valve_divide_value = 100; - if (camera_a_divide != ENCODER_DEV_DIVIDE_NOT_TO_SET) - encoder_dev_divide_value_structure.camera_a_divide_value = camera_a_divide; - if (camera_b_divide != ENCODER_DEV_DIVIDE_NOT_TO_SET) - encoder_dev_divide_value_structure.camera_b_divide_value = camera_b_divide; - if (camera_c_divide != ENCODER_DEV_DIVIDE_NOT_TO_SET) - encoder_dev_divide_value_structure.camera_c_divide_value = camera_c_divide; - if (camera_d_divide != ENCODER_DEV_DIVIDE_NOT_TO_SET) - encoder_dev_divide_value_structure.camera_d_divide_value = camera_d_divide; - - ssize_t size = write(encoder_dev_fd, &encoder_dev_divide_value_structure, sizeof(encoder_dev_divide_value_structure)); - int res = -(size != sizeof(encoder_dev_divide_value_structure)); - ON_ERROR_RET(res, "size=", "", -1); - - return 0; -} - -/** - * @brief Set the trig signal to internal or external. - * @param count the count of virtual trig cycles. - * @return 0 - success, other - error - */ -int encoder_dev_virtual_trig(int count) -{ - int res = ioctl(encoder_dev_fd, _IOW('D', ENCODER_CMD_FUNCTION_VIRT_INPUT, int), count); - ON_ERROR_RET(res, "", "", -1); - return 0; -} - -/** - * @brief Set the trig signal to internal or external. - * @param mode ENCODER_TRIG_MODE_EXTERNEL for externally trig, or ENCODER_TRIG_MODE_INTERNEL for internally trig - * @return 0 - success, other - error - */ -int encoder_dev_set_trigmod(encoder_dev_trig_mode_enum mode) -{ - int res = ioctl(encoder_dev_fd, _IOW('D', mode, int)); - ON_ERROR_RET(res, "", "", -1); - return 0; -} - -/** - * @brief Set the clr signal to internal or both external and internal. - * @return 0 - success, other - error - */ -int encoder_dev_set_clrmod(encoder_dev_clear_mode_enum mode) -{ - int res = ioctl(encoder_dev_fd, _IOW('D', mode, int)); - ON_ERROR_RET(res, "", "", -1); - return 0; -} - -/** - * @brief Claer the cache in hardware encoder unit. - * @note The frequency division counters continutly count pluses of external/internal signal. - * This functhion clears the counters. - * @return 0 - success, other - error - */ -int encoder_dev_flush() -{ - int res = ioctl(encoder_dev_fd, _IOW('D', ENCODER_CMD_FUNCTION_CLEAR, 0)); - ON_ERROR_RET(res, "", "", -1); - return 0; -} - -/** - * @brief Deinitialize the hardware encoder unit. - * @note This function just close the file descriptor of the encoder unit. - * @return 0 - success, other - error - */ -int encoder_dev_deinit() -{ - int res = close(encoder_dev_fd); - - ON_ERROR_RET(res, "", "", -1); - return 0; -} - diff --git a/source/linux_driver/encoder_drv_test/encoder_dev.h b/source/linux_driver/encoder_drv_test/encoder_dev.h deleted file mode 100644 index 231db31..0000000 --- a/source/linux_driver/encoder_drv_test/encoder_dev.h +++ /dev/null @@ -1,51 +0,0 @@ -/** - * @file encoder_dev.h - * @brief Manage the hardware encoder unit - * @author miaow, lzy (3703781@qq.com) - * @version 0.11 - * @date 2022/04/26 - * @mainpage github.com/NanjingForestryUniversity - * - * @copyright Copyright (c) 2023 miaow, lyz - * - * @par Changelog: - * - *
Date Version Author Description - *
2022/06/11 0.9 Miaow Write this module - *
2022/04/11 0.10 lyz Add seprate dividers up to 4 cameras - *
2023/04/26 0.11 Miaow Add Clear mode - *
- */ -#ifndef __ENCODER_DEV_H -#define __ENCODER_DEV_H - -#include - -#define ENCODER_DEV_PATH "/dev/encoder" - -#define ENCODER_DEV_DIVIDE_NOT_TO_SET 0 - -typedef enum -{ - ENCODER_TRIG_MODE_EXTERNEL = 100, - ENCODER_TRIG_MODE_INTERNEL = 101 -} encoder_dev_trig_mode_enum; - -typedef enum -{ - ENCODER_CLEAR_MODE_BOTH = 200, - ENCODER_CLEAR_MODE_INTERNAL = 201 -} encoder_dev_clear_mode_enum; - -int encoder_dev_set_divide(int camera_a_divide, - int camera_b_divide, - int camera_c_divide, - int camera_d_divide); -int encoder_dev_flush(void); -int encoder_dev_set_trigmod(encoder_dev_trig_mode_enum mode); -int encoder_dev_set_clrmod(encoder_dev_clear_mode_enum mode); -int encoder_dev_virtual_trig(int count); -int encoder_dev_init(void); -int encoder_dev_deinit(void); - -#endif diff --git a/source/linux_driver/encoder_drv_test/main.c b/source/linux_driver/encoder_drv_test/main.c deleted file mode 100644 index 306374a..0000000 --- a/source/linux_driver/encoder_drv_test/main.c +++ /dev/null @@ -1,78 +0,0 @@ -#include "encoder_dev.h" -#include -#include -#include -#include -#include - -static void sig_handler(int sig); - -int main(int argc, char *argv[]) -{ - unsigned int a = 100, b = 100, c = 100, d = 100; - unsigned int divider = 0; - char which[32] = {0}; - char clear_mode[32] = {0}; - encoder_dev_init(); - encoder_dev_set_trigmod(ENCODER_TRIG_MODE_EXTERNEL); - encoder_dev_set_divide(100, 100, 100, 100, 100); - signal(SIGINT, (sig_t)sig_handler); - while (1) - { - while (strcmp(clear_mode, "i") && strcmp(clear_mode, "ei")) - { - printf("clear mode(i/ei)? "); - scanf("%s", clear_mode); - } - - if (strcmp(clear_mode, "i")) - { - encoder_dev_set_clrmod(ENCODER_CLEAR_MODE_INTERNAL); - } - else - { - encoder_dev_set_clrmod(ENCODER_CLEAR_MODE_BOTH); - } - - while (strcmp(which, "a") && strcmp(which, "b") && strcmp(which, "c") && strcmp(which, "d") && strcmp(which, "all")) - { - printf("which camera(a/b/c/d/all)? "); - scanf("%s", which); - } - - printf("divider value?(2~2^32-1)? "); - scanf("%ud", ÷r); - if (strcmp(which, "a") == 0) - { - a = divider; - } - else if (strcmp(which, "b") == 0) - { - b = divider; - } - else if (strcmp(which, "c") == 0) - { - c = divider; - } - else if (strcmp(which, "d") == 0) - { - d = divider; - } - else if (strcmp(which, "all") == 0) - { - a = b = c = d = divider; - } - encoder_dev_set_divide(500, a, b, c, d); - printf("clear mode is %s, divider of camera %s is set to %d\r\n\r\n", clear_mode, which, divider); - which[0] = '\0'; - clear_mode[0] = '\0'; - } -} - -static void sig_handler(int sig) -{ - encoder_dev_set_trigmod(ENCODER_TRIG_MODE_INTERNEL); - encoder_dev_deinit(); - printf("\r\n\r\nExisting..."); - exit(0); -} \ No newline at end of file diff --git a/source/linux_driver/encoder_drv_test/main.h b/source/linux_driver/encoder_drv_test/main.h deleted file mode 100644 index e69de29..0000000 diff --git a/source/linux_driver/version b/source/linux_driver/version deleted file mode 100644 index dc39e58..0000000 --- a/source/linux_driver/version +++ /dev/null @@ -1 +0,0 @@ -1.6 \ No newline at end of file diff --git a/source/petalinux_config/kernel.cfg b/source/petalinux_config/kernel.cfg deleted file mode 100644 index ead4430..0000000 --- a/source/petalinux_config/kernel.cfg +++ /dev/null @@ -1,8 +0,0 @@ -CONFIG_FS_POSIX_ACL=y -CONFIG_FUSE_FS=y -CONFIG_USB_OTG=y -CONFIG_FAT_DEFAULT_UTF8=y -CONFIG_EXFAT_FS=y -CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" -CONFIG_NTFS_FS=y -CONFIG_NTFS_RW=y \ No newline at end of file diff --git a/source/petalinux_config/petalinux_config b/source/petalinux_config/petalinux_config deleted file mode 100644 index cf23540..0000000 --- a/source/petalinux_config/petalinux_config +++ /dev/null @@ -1,262 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# misc/config System Configuration -# -CONFIG_SUBSYSTEM_TYPE_LINUX=y -CONFIG_SYSTEM_ZYNQ=y - -# -# Linux Components Selection -# -CONFIG_SUBSYSTEM_COMPONENT_DEVICE__TREE_NAME_DEVICE__TREE__GENERATOR=y -CONFIG_SUBSYSTEM_COMPONENT_BOOTLOADER_AUTO_FSBL=y -CONFIG_SUBSYSTEM_COMPONENT_BOOTLOADER_NAME_ZYNQ_FSBL=y -CONFIG_SUBSYSTEM_COMPONENT_BOOTLOADER_AUTO_PS_INIT=y -CONFIG_SUBSYSTEM_COMPONENT_U__BOOT_NAME_U__BOOT__XLNX=y -# CONFIG_SUBSYSTEM_COMPONENT_U__BOOT_NAME_REMOTE is not set -# CONFIG_SUBSYSTEM_COMPONENT_U__BOOT_NAME_EXT__LOCAL__SRC is not set -CONFIG_SUBSYSTEM_COMPONENT_LINUX__KERNEL_NAME_LINUX__XLNX=y -# CONFIG_SUBSYSTEM_COMPONENT_LINUX__KERNEL_NAME_REMOTE is not set -# CONFIG_SUBSYSTEM_COMPONENT_LINUX__KERNEL_NAME_EXT__LOCAL__SRC is not set - -# -# Auto Config Settings -# -CONFIG_SUBSYSTEM_AUTOCONFIG_DEVICE__TREE=y -# CONFIG_SUBSYSTEM_DEVICE_TREE_MANUAL_INCLUDE is not set -CONFIG_SUBSYSTEM_HARDWARE_AUTO=y -CONFIG_SUBSYSTEM_PROCESSOR0_IP_NAME="ps7_cortexa9_0" -CONFIG_SUBSYSTEM_PROCESSOR_ps7_cortexa9_0_SELECT=y -CONFIG_SUBSYSTEM_ARCH_ARM=y - -# -# Memory Settings -# -CONFIG_SUBSYSTEM_MEMORY_PS7_DDR_0_BANKLESS_SELECT=y -# CONFIG_SUBSYSTEM_MEMORY_MANUAL_SELECT is not set -CONFIG_SUBSYSTEM_MEMORY_PS7_DDR_0_BANKLESS_BASEADDR=0x0 -CONFIG_SUBSYSTEM_MEMORY_PS7_DDR_0_BANKLESS_SIZE=0x20000000 -CONFIG_SUBSYSTEM_MEMORY_PS7_DDR_0_BANKLESS_KERNEL_BASEADDR=0x0 -CONFIG_SUBSYSTEM_MEMORY_PS7_DDR_0_BANKLESS_U__BOOT_TEXTBASE_OFFSET=0x400000 -CONFIG_SUBSYSTEM_MEMORY_IP_NAME="PS7_DDR_0" - -# -# Serial Settings -# -CONFIG_SUBSYSTEM_FSBL_SERIAL_PS7_UART_0_SELECT=y -# CONFIG_SUBSYSTEM_FSBL_SERIAL_MANUAL_SELECT is not set -CONFIG_SUBSYSTEM_SERIAL_PS7_UART_0_SELECT=y -# CONFIG_SUBSYSTEM_SERIAL_MANUAL_SELECT is not set -# CONFIG_SUBSYSTEM_SERIAL_PS7_UART_0_BAUDRATE_600 is not set -# CONFIG_SUBSYSTEM_SERIAL_PS7_UART_0_BAUDRATE_9600 is not set -# CONFIG_SUBSYSTEM_SERIAL_PS7_UART_0_BAUDRATE_28800 is not set -CONFIG_SUBSYSTEM_SERIAL_PS7_UART_0_BAUDRATE_115200=y -# CONFIG_SUBSYSTEM_SERIAL_PS7_UART_0_BAUDRATE_230400 is not set -# CONFIG_SUBSYSTEM_SERIAL_PS7_UART_0_BAUDRATE_460800 is not set -# CONFIG_SUBSYSTEM_SERIAL_PS7_UART_0_BAUDRATE_921600 is not set -CONFIG_SUBSYSTEM_SERIAL_FSBL_IP_NAME="ps7_uart_0" -CONFIG_SUBSYSTEM_SERIAL_IP_NAME="ps7_uart_0" - -# -# Ethernet Settings -# -CONFIG_SUBSYSTEM_ETHERNET_PS7_ETHERNET_0_SELECT=y -# CONFIG_SUBSYSTEM_ETHERNET_MANUAL_SELECT is not set -# CONFIG_SUBSYSTEM_ETHERNET_PS7_ETHERNET_0_MAC_AUTO is not set -CONFIG_SUBSYSTEM_ETHERNET_PS7_ETHERNET_0_MAC="00:0a:35:00:1e:53" -# CONFIG_SUBSYSTEM_ETHERNET_PS7_ETHERNET_0_USE_DHCP is not set -CONFIG_SUBSYSTEM_ETHERNET_PS7_ETHERNET_0_IP_ADDRESS="192.168.10.10" -CONFIG_SUBSYSTEM_ETHERNET_PS7_ETHERNET_0_IP_NETMASK="255.255.255.0" -CONFIG_SUBSYSTEM_ETHERNET_PS7_ETHERNET_0_IP_GATEWAY="192.168.10.1" - -# -# Flash Settings -# -CONFIG_SUBSYSTEM_FLASH_PS7_QSPI_0_BANKLESS_SELECT=y -# CONFIG_SUBSYSTEM_FLASH_MANUAL_SELECT is not set -# CONFIG_SUBSYSTEM_FLASH__ADVANCED_AUTOCONFIG is not set - -# -# partition 0 -# -CONFIG_SUBSYSTEM_FLASH_PS7_QSPI_0_BANKLESS_PART0_NAME="boot" -CONFIG_SUBSYSTEM_FLASH_PS7_QSPI_0_BANKLESS_PART0_SIZE=0x400000 - -# -# partition 1 -# -CONFIG_SUBSYSTEM_FLASH_PS7_QSPI_0_BANKLESS_PART1_NAME="kernel" -CONFIG_SUBSYSTEM_FLASH_PS7_QSPI_0_BANKLESS_PART1_SIZE=0x1400000 - -# -# partition 2 -# -CONFIG_SUBSYSTEM_FLASH_PS7_QSPI_0_BANKLESS_PART2_NAME="bootenv" -CONFIG_SUBSYSTEM_FLASH_PS7_QSPI_0_BANKLESS_PART2_SIZE=0x400000 - -# -# partition 3 -# -CONFIG_SUBSYSTEM_FLASH_PS7_QSPI_0_BANKLESS_PART3_NAME="" -CONFIG_SUBSYSTEM_FLASH_IP_NAME="ps7_qspi_0" - -# -# SD/SDIO Settings -# -CONFIG_SUBSYSTEM_PRIMARY_SD_PS7_SD_0_SELECT=y -# CONFIG_SUBSYSTEM_PRIMARY_SD_PS7_SD_1_SELECT is not set -# CONFIG_SUBSYSTEM_PRIMARY_SD_MANUAL_SELECT is not set -CONFIG_SUBSYSTEM_SD_PS7_SD_0_SELECT=y -CONFIG_SUBSYSTEM_SD_PS7_SD_1_SELECT=y - -# -# RTC Settings -# -CONFIG_SUBSYSTEM_RTC_MANUAL_SELECT=y -CONFIG_SUBSYSTEM_USB_PS7_USB_0_SELECT=y -CONFIG_SUBSYSTEM_ENDIAN_LITTLE=y - -# -# DTG Settings -# -CONFIG_SUBSYSTEM_MACHINE_NAME="template" -CONFIG_SUBSYSTEM_EXTRA_DT_FILES="" - -# -# Kernel Bootargs -# -CONFIG_SUBSYSTEM_BOOTARGS_AUTO=y -CONFIG_SUBSYSTEM_BOOTARGS_EARLYPRINTK=y - -CONFIG_SUBSYSTEM_DEVICETREE_COMPILER_FLAGS="-@" -# CONFIG_SUBSYSTEM_DTB_OVERLAY is not set -# CONFIG_SUBSYSTEM_REMOVE_PL_DTB is not set -# CONFIG_SUBSYSTEM_ENABLE_NO_ALIAS is not set -# CONFIG_SUBSYSTEM_ENABLE_DT_VERBOSE is not set - -# -# FSBL Configuration -# -CONFIG_SUBSYSTEM_FSBL_BSPCOMPILER_FLAGS="" -CONFIG_SUBSYSTEM_FSBL_COMPILER_EXTRA_FLAGS="" - -# -# FPGA Manager -# -# CONFIG_SUBSYSTEM_FPGA_MANAGER is not set - -# -# u-boot Configuration -# -CONFIG_SUBSYSTEM_UBOOT_CONFIG_TARGET="xilinx_zynq_virt_defconfig" - -# -# u-boot script configuration -# -CONFIG_SUBSYSTEM_UBOOT_APPEND_BASEADDR=y -CONFIG_SUBSYSTEM_UBOOT_PRE_BOOTENV="" - -# -# JTAG/DDR image offsets -# -CONFIG_SUBSYSTEM_UBOOT_DEVICETREE_OFFSET=0x100000 -CONFIG_SUBSYSTEM_UBOOT_KERNEL_OFFSET=0x200000 -CONFIG_SUBSYSTEM_UBOOT_RAMDISK_IMAGE_OFFSET=0x4000000 -CONFIG_SUBSYSTEM_UBOOT_FIT_IMAGE_OFFSET=0x10000000 - -# -# QSPI/OSPI image offsets -# -CONFIG_SUBSYSTEM_UBOOT_QSPI_KERNEL_OFFSET=0xA00000 -CONFIG_SUBSYSTEM_UBOOT_QSPI_KERNEL_SIZE=0x600000 -CONFIG_SUBSYSTEM_UBOOT_QSPI_RAMDISK_OFFSET=0x1000000 -CONFIG_SUBSYSTEM_UBOOT_QSPI_RAMDISK_SIZE=0xF80000 -CONFIG_SUBSYSTEM_UBOOT_QSPI_FIT_IMAGE_OFFSET=0xA80000 -CONFIG_SUBSYSTEM_UBOOT_QSPI_FIT_IMAGE_SIZE=0x1500000 - -# -# NAND image offsets -# -CONFIG_SUBSYSTEM_UBOOT_NAND_KERNEL_OFFSET=0x1000000 -CONFIG_SUBSYSTEM_UBOOT_NAND_KERNEL_SIZE=0x3200000 -CONFIG_SUBSYSTEM_UBOOT_NAND_RAMDISK_OFFSET=0x4600000 -CONFIG_SUBSYSTEM_UBOOT_NAND_RAMDISK_SIZE=0x3200000 -CONFIG_SUBSYSTEM_UBOOT_NAND_FIT_IMAGE_OFFSET=0x1080000 -CONFIG_SUBSYSTEM_UBOOT_NAND_FIT_IMAGE_SIZE=0x6400000 -CONFIG_SUBSYSTEM_UBOOT_KERNEL_IMAGE="uImage" -CONFIG_SUBSYSTEM_UBOOT_FIT_IMAGE="image.ub" -# CONFIG_SUBSYSTEM_UBOOT_EXT_DTB is not set - -# -# Linux Configuration -# -CONFIG_SUBSYSTEM_LINUX_CONFIG_TARGET="" - -# -# Image Packaging Configuration -# -# CONFIG_SUBSYSTEM_ROOTFS_INITRAMFS is not set -# CONFIG_SUBSYSTEM_ROOTFS_INITRD is not set -# CONFIG_SUBSYSTEM_ROOTFS_JFFS2 is not set -# CONFIG_SUBSYSTEM_ROOTFS_UBIFS is not set -# CONFIG_SUBSYSTEM_ROOTFS_NFS is not set -CONFIG_SUBSYSTEM_ROOTFS_EXT4=y -# CONFIG_SUBSYSTEM_ROOTFS_OTHER is not set -CONFIG_SUBSYSTEM_SDROOT_DEV="/dev/mmcblk0p2" -CONFIG_SUBSYSTEM_UIMAGE_NAME="image.ub" -CONFIG_SUBSYSTEM_RFS_FORMATS="ext4 tar.gz" -CONFIG_SUBSYSTEM_DTB_PADDING_SIZE=0x1000 -# CONFIG_SUBSYSTEM_COPY_TO_TFTPBOOT is not set - -# -# Firmware Version Configuration -# -CONFIG_SUBSYSTEM_HOSTNAME="ps-linux" -CONFIG_SUBSYSTEM_PRODUCT="ps-linux" -CONFIG_SUBSYSTEM_FW_VERSION="1.00" - -# -# Yocto Settings -# -CONFIG_YOCTO_MACHINE_NAME="zynq-generic" - -# -# TMPDIR Location -# -CONFIG_TMP_DIR_LOCATION="${PROOT}/build/tmp" - -# -# Devtool Workspace Location -# -CONFIG_DEVTOOL_WORKSPACE_LOCATION="${PROOT}/components/yocto/workspace" - -# -# Parallel thread execution -# -CONFIG_YOCTO_BB_NUMBER_THREADS="" -CONFIG_YOCTO_PARALLEL_MAKE="" - -# -# Add pre-mirror url -# -CONFIG_PRE_MIRROR_URL="http://petalinux.xilinx.com/sswreleases/rel-v${PETALINUX_MAJOR_VER}/downloads" - -# -# Local sstate feeds settings -# -CONFIG_YOCTO_LOCAL_SSTATE_FEEDS_URL="" -CONFIG_YOCTO_NETWORK_SSTATE_FEEDS=y - -# -# Network sstate feeds URL -# -CONFIG_YOCTO_NETWORK_SSTATE_FEEDS_URL="http://petalinux.xilinx.com/sswreleases/rel-v${PETALINUX_MAJOR_VER}/arm/sstate-cache" -# CONFIG_YOCTO_BB_NO_NETWORK is not set -# CONFIG_YOCTO_BUILDTOOLS_EXTENDED is not set - -# -# User Layers -# -CONFIG_USER_LAYER_0="" - -CONFIG_SUBSYSTEM_BOOTARGS_GENERATED="console=ttyPS0,115200 earlycon root=/dev/mmcblk0p2 rw rootwait" diff --git a/source/petalinux_config/platform-top.h b/source/petalinux_config/platform-top.h deleted file mode 100644 index 06a8c41..0000000 --- a/source/petalinux_config/platform-top.h +++ /dev/null @@ -1,10 +0,0 @@ -#include - -#define CONFIG_BOOTCOMMAND "run mmc_loadbit; run distro_bootcmd" -#define CONFIG_FPGA_ZYNQPL -#define CONFIG_EXTRA_ENV_SETTINGS \ - BOOTENV \ - "bitstream_bit=system.bit\0" \ - "bitstream=system.bit\0" \ - "loadbit_addr=0x100000\0" \ - "mmc_loadbit=echo Loading bitstream from SD/MMC/eMMC to RAM.. && mmcinfo && load mmc 0 ${loadbit_addr} ${bitstream} && fpga loadb 0 ${loadbit_addr} ${filesize}\0" diff --git a/source/petalinux_config/rootfs_config b/source/petalinux_config/rootfs_config deleted file mode 100644 index 8f8ba49..0000000 --- a/source/petalinux_config/rootfs_config +++ /dev/null @@ -1,3903 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Configuration -# -CONFIG_system-zynq=y - -# -# Filesystem Packages -# - -# -# admin -# - -# -# sudo -# -# CONFIG_sudo is not set -# CONFIG_sudo-dbg is not set -# CONFIG_sudo-dev is not set - -# -# base -# - -# -# base-files -# -# CONFIG_base-files is not set -# CONFIG_base-files-dbg is not set -# CONFIG_base-files-dev is not set - -# -# base-passwd -# -# CONFIG_base-passwd is not set -# CONFIG_base-passwd-dev is not set -# CONFIG_base-passwd-dbg is not set -# CONFIG_base-passwd-update is not set - -# -# bc -# -# CONFIG_bc is not set -# CONFIG_bc-dev is not set -# CONFIG_bc-dbg is not set - -# -# busybox -# -# CONFIG_busybox is not set -# CONFIG_busybox-udhcpd is not set -# CONFIG_busybox-httpd is not set -# CONFIG_busybox-dbg is not set -# CONFIG_busybox-inetd is not set -# CONFIG_busybox-dev is not set -# CONFIG_busybox-hwclock is not set -# CONFIG_busybox-udhcpc is not set -# CONFIG_busybox-syslog is not set - -# -# cpio -# -# CONFIG_cpio is not set -# CONFIG_cpio-dbg is not set -# CONFIG_cpio-dev is not set -# CONFIG_cpio-rmt is not set - -# -# dbus -# -# CONFIG_dbus is not set -# CONFIG_dbus-lib is not set -# CONFIG_dbus-dev is not set -# CONFIG_dbus-dbg is not set - -# -# dbus-glib -# -# CONFIG_dbus-glib is not set -# CONFIG_dbus-glib-bash-completion is not set -# CONFIG_dbus-glib-tests is not set -# CONFIG_dbus-glib-dbg is not set -# CONFIG_dbus-glib-dev is not set - -# -# dbus-wait -# -# CONFIG_dbus-wait is not set -# CONFIG_dbus-wait-dbg is not set -# CONFIG_dbus-wait-dev is not set - -# -# diffutils -# -# CONFIG_diffutils is not set -# CONFIG_diffutils-dbg is not set -# CONFIG_diffutils-dev is not set - -# -# dnf -# -# CONFIG_dnf is not set - -# -# e2fsprogs -# -# CONFIG_e2fsprogs is not set -# CONFIG_e2fsprogs-resize2fs is not set -# CONFIG_e2fsprogs-badblocks is not set -# CONFIG_e2fsprogs-e2fsck is not set -# CONFIG_libss is not set -# CONFIG_libcomerr is not set -# CONFIG_libext2fs is not set -# CONFIG_e2fsprogs-dev is not set -# CONFIG_e2fsprogs-tune2fs is not set -# CONFIG_libe2p is not set -CONFIG_e2fsprogs-mke2fs=y -# CONFIG_e2fsprogs-dbg is not set - -# -# ed -# -# CONFIG_ed is not set -# CONFIG_ed-dev is not set -# CONFIG_ed-dbg is not set - -# -# elfutils -# -# CONFIG_elfutils is not set -# CONFIG_libdw is not set -# CONFIG_elfutils-dev is not set -# CONFIG_elfutils-binutils is not set -# CONFIG_libelf is not set -# CONFIG_libasm is not set -# CONFIG_elfutils-dbg is not set - -# -# formfactor -# -# CONFIG_formfactor is not set -# CONFIG_formfactor-dbg is not set -# CONFIG_formfactor-dev is not set - -# -# fpga-manager-script -# -CONFIG_fpga-manager-script=y - -# -# haveged -# -CONFIG_haveged=y - -# -# i2c-tools -# -# CONFIG_i2c-tools is not set -# CONFIG_i2c-tools-dev is not set -# CONFIG_i2c-tools-dbg is not set -# CONFIG_i2c-tools-misc is not set - -# -# init-ifupdown -# -# CONFIG_init-ifupdown is not set -# CONFIG_init-ifupdown-dev is not set -# CONFIG_init-ifupdown-dbg is not set - -# -# initscripts -# -# CONFIG_initscripts is not set -# CONFIG_initscripts-dev is not set -# CONFIG_initscripts-dbg is not set -# CONFIG_initscripts-functions is not set - -# -# iproute2 -# -# CONFIG_iproute2 is not set -# CONFIG_iproute2-tc is not set -# CONFIG_iproute2-nstat is not set -# CONFIG_iproute2-dev is not set -# CONFIG_iproute2-lnstat is not set -# CONFIG_iproute2-rtacct is not set -# CONFIG_iproute2-ss is not set -# CONFIG_iproute2-ifstat is not set -# CONFIG_iproute2-genl is not set -# CONFIG_iproute2-bash-completion is not set -# CONFIG_iproute2-dbg is not set - -# -# kmod -# -# CONFIG_kmod is not set -# CONFIG_kmod-dbg is not set -# CONFIG_libkmod is not set -# CONFIG_kmod-dev is not set -# CONFIG_kmod-bash-completion is not set - -# -# linuxptp -# -# CONFIG_linuxptp is not set -# CONFIG_linuxptp-dev is not set -# CONFIG_linuxptp-dbg is not set - -# -# modutils-initscripts -# -# CONFIG_modutils-initscripts is not set -# CONFIG_modutils-initscripts-dev is not set -# CONFIG_modutils-initscripts-dbg is not set - -# -# mtd-utils -# -CONFIG_mtd-utils=y -# CONFIG_mtd-utils-ubifs is not set -# CONFIG_mtd-utils-dev is not set -# CONFIG_mtd-utils-jffs2 is not set -# CONFIG_mtd-utils-dbg is not set -# CONFIG_mtd-utils-misc is not set - -# -# netbase -# -# CONFIG_netbase is not set -# CONFIG_netbase-dbg is not set -# CONFIG_netbase-dev is not set - -# -# opkg -# -# CONFIG_opkg is not set -# CONFIG_opkg-dev is not set -# CONFIG_libopkg is not set -# CONFIG_opkg-dbg is not set - -# -# opkg-utils -# -# CONFIG_opkg-utils is not set -# CONFIG_update-alternatives-opkg is not set -# CONFIG_opkg-utils-dbg is not set - -# -# procps -# -# CONFIG_procps is not set -# CONFIG_procps-dbg is not set -# CONFIG_procps-dev is not set - -# -# pseudo -# -# CONFIG_pseudo is not set -# CONFIG_pseudo-dbg is not set -# CONFIG_pseudo-dev is not set - -# -# psplash -# -# CONFIG_psplash is not set -# CONFIG_psplash-dbg is not set -# CONFIG_psplash-default is not set -# CONFIG_psplash-dev is not set - -# -# quota -# -# CONFIG_quota is not set -# CONFIG_quota-dev is not set -# CONFIG_quota-dbg is not set - -# -# shared-mime-info -# -# CONFIG_shared-mime-info is not set -# CONFIG_shared-mime-info-dev is not set -# CONFIG_shared-mime-info-dbg is not set -# CONFIG_shared-mime-info-data is not set - -# -# shell -# - -# -# bash -# -CONFIG_bash=y -# CONFIG_bash-dev is not set -# CONFIG_bash-dbg is not set - -# -# sysvinit -# -# CONFIG_sysvinit is not set -# CONFIG_sysvinit-pidof is not set -# CONFIG_sysvinit-dbg is not set -# CONFIG_sysvinit-dev is not set -# CONFIG_sysvinit-sulogin is not set - -# -# tar -# -CONFIG_tar=y -# CONFIG_tar-dev is not set -# CONFIG_tar-rmt is not set -# CONFIG_tar-dbg is not set - -# -# tzdata -# -# CONFIG_tzdata is not set -# CONFIG_tzdata-asia is not set -# CONFIG_tzdata-arctic is not set -# CONFIG_tzdata-posix is not set -# CONFIG_tzdata-africa is not set -# CONFIG_tzdata-europe is not set -# CONFIG_tzdata-americas is not set -# CONFIG_tzdata-antarctica is not set -# CONFIG_tzdata-atlantic is not set -# CONFIG_tzdata-misc is not set -# CONFIG_tzdata-right is not set -# CONFIG_tzdata-pacific is not set -# CONFIG_tzdata-australia is not set - -# -# update-rc.d -# -# CONFIG_update-rc.d is not set -# CONFIG_update-rc.d-dev is not set -# CONFIG_update-rc.d-dbg is not set - -# -# usbutils -# -# CONFIG_usbutils is not set -# CONFIG_usbutils-dbg is not set -# CONFIG_usbutils-dev is not set - -# -# util-linux -# -# CONFIG_util-linux is not set -# CONFIG_util-linux-dev is not set -# CONFIG_util-linux-fsck.cramfs is not set -# CONFIG_util-linux-swaponoff is not set -# CONFIG_util-linux-sfdisk is not set -# CONFIG_util-linux-uuidd is not set -# CONFIG_util-linux-getopt is not set -# CONFIG_util-linux-findfs is not set -# CONFIG_util-linux-mountpoint is not set -# CONFIG_util-linux-hwclock is not set -# CONFIG_util-linux-mcookie is not set -# CONFIG_util-linux-dbg is not set -# CONFIG_util-linux-mkfs.cramfs is not set -CONFIG_util-linux-blkid=y -# CONFIG_util-linux-sulogin is not set -# CONFIG_util-linux-losetup is not set -# CONFIG_util-linux-fstrim is not set -# CONFIG_util-linux-cfdisk is not set -# CONFIG_util-linux-agetty is not set -# CONFIG_util-linux-bash-completion is not set -CONFIG_util-linux-lscpu=y -# CONFIG_util-linux-prlimit is not set -CONFIG_util-linux-umount=y -# CONFIG_util-linux-partx is not set -# CONFIG_util-linux-mkfs is not set -# CONFIG_util-linux-readprofile is not set -# CONFIG_util-linux-uuidgen is not set -CONFIG_util-linux-mount=y -# CONFIG_util-linux-fdisk is not set -# CONFIG_util-linux-fsck is not set - -# -# utils -# - -# -# shadow -# -# CONFIG_shadow is not set -# CONFIG_shadow-base is not set -# CONFIG_shadow-dev is not set -# CONFIG_shadow-dbg is not set - -# -# xz -# -CONFIG_xz=y -# CONFIG_xz-dev is not set -# CONFIG_xz-dbg is not set -CONFIG_liblzma=y - -# -# baseutils -# - -# -# shadow-securetty -# -# CONFIG_shadow-securetty is not set -# CONFIG_shadow-securetty-dev is not set -# CONFIG_shadow-securetty-dbg is not set - -# -# benchmark -# - -# -# tests -# - -# -# dhrystone -# -# CONFIG_dhrystone is not set -# CONFIG_dhrystone-dev is not set -# CONFIG_dhrystone-dbg is not set - -# -# linpack -# -# CONFIG_linpack is not set -# CONFIG_linpack-dbg is not set -# CONFIG_linpack-dev is not set - -# -# whetstone -# -# CONFIG_whetstone is not set -# CONFIG_whetstone-dev is not set -# CONFIG_whetstone-dbg is not set - -# -# bootgen -# -# CONFIG_bootgen is not set -# CONFIG_bootgen-dev is not set -# CONFIG_bootgen-dbg is not set - -# -# console -# - -# -# network -# - -# -# canutils -# -# CONFIG_canutils is not set -# CONFIG_canutils-dbg is not set -# CONFIG_canutils-dev is not set - -# -# can-utils -# -CONFIG_can-utils=y -# CONFIG_can-utils-dbg is not set -# CONFIG_can-utils-dev is not set - -# -# curl -# -CONFIG_curl=y -# CONFIG_curl-dev is not set -CONFIG_libcurl=y -# CONFIG_curl-dbg is not set - -# -# dropbear -# -# CONFIG_dropbear is not set -# CONFIG_dropbear-dev is not set -# CONFIG_dropbear-dbg is not set - -# -# ethtool -# -CONFIG_ethtool=y -# CONFIG_ethtool-dbg is not set -# CONFIG_ethtool-dev is not set - -# -# lrzsz -# -CONFIG_lrzsz=y -# CONFIG_lrzsz-dbg is not set -# CONFIG_lrzsz-dev is not set - -# -# mailx -# -# CONFIG_mailx is not set -# CONFIG_mailx-dbg is not set -# CONFIG_mailx-dev is not set - -# -# minicom -# -CONFIG_minicom=y -# CONFIG_minicom-dbg is not set -# CONFIG_minicom-dev is not set - -# -# nfs-utils -# -CONFIG_nfs-utils=y -# CONFIG_nfs-utils-dev is not set -# CONFIG_nfs-utils-client is not set -# CONFIG_nfs-utils-stats is not set -# CONFIG_nfs-utils-dbg is not set - -# -# openssh -# -CONFIG_openssh=y -CONFIG_openssh-misc=y -# CONFIG_openssh-dbg is not set -CONFIG_openssh-sshd=y -CONFIG_openssh-keygen=y -CONFIG_openssh-ssh=y -# CONFIG_openssh-dev is not set -CONFIG_openssh-sftp=y -CONFIG_openssh-sftp-server=y -CONFIG_openssh-scp=y - -# -# ppp -# -# CONFIG_ppp is not set -# CONFIG_ppp-minconn is not set -# CONFIG_ppp-l2tp is not set -# CONFIG_ppp-dev is not set -# CONFIG_ppp-password is not set -# CONFIG_ppp-radius is not set -# CONFIG_ppp-tools is not set -# CONFIG_ppp-dbg is not set -# CONFIG_ppp-oe is not set -# CONFIG_ppp-oa is not set -# CONFIG_ppp-winbind is not set - -# -# rpcbind -# -# CONFIG_rpcbind is not set -# CONFIG_rpcbind-dbg is not set -# CONFIG_rpcbind-dev is not set - -# -# rsync -# -# CONFIG_rsync is not set -# CONFIG_rsync-dev is not set -# CONFIG_rsync-dbg is not set - -# -# socat -# -# CONFIG_socat is not set -# CONFIG_socat-dbg is not set -# CONFIG_socat-dev is not set - -# -# subversion -# -# CONFIG_subversion is not set -# CONFIG_subversion-dev is not set -# CONFIG_subversion-dbg is not set - -# -# tcp-wrappers -# -# CONFIG_tcp-wrappers is not set -# CONFIG_tcp-wrappers-dbg is not set -# CONFIG_libwrap-dev is not set -# CONFIG_libwrap is not set - -# -# wget -# -CONFIG_wget=y -# CONFIG_wget-dev is not set -# CONFIG_wget-dbg is not set - -# -# tools -# - -# -# parted -# -# CONFIG_parted is not set -# CONFIG_parted-dbg is not set -# CONFIG_parted-dev is not set - -# -# utils -# - -# -# alsa-utils -# -# CONFIG_alsa-utils is not set -# CONFIG_alsa-utils-aconnect is not set -# CONFIG_alsa-utils-alsaloop is not set -# CONFIG_alsa-utils-aseqdump is not set -# CONFIG_alsa-utils-aplay is not set -# CONFIG_alsa-utils-iecset is not set -# CONFIG_alsa-utils-alsaucm is not set -# CONFIG_alsa-utils-dev is not set -# CONFIG_alsa-utils-alsamixer is not set -# CONFIG_alsa-utils-amixer is not set -# CONFIG_alsa-utils-speakertest is not set -# CONFIG_alsa-utils-alsactl is not set -# CONFIG_alsa-utils-dbg is not set -# CONFIG_alsa-utils-midi is not set -# CONFIG_alsa-utils-aseqnet is not set -# CONFIG_alsa-utils-alsatplg is not set - -# -# bash-completion -# -CONFIG_bash-completion=y -# CONFIG_bash-completion-dev is not set -CONFIG_bash-completion-extra=y -# CONFIG_bash-completion-dbg is not set - -# -# bzip2 -# -CONFIG_bzip2=y -CONFIG_libbz2=y -# CONFIG_bzip2-dbg is not set -# CONFIG_bzip2-dev is not set - -# -# file -# -CONFIG_file=y -# CONFIG_file-dbg is not set -# CONFIG_file-dev is not set - -# -# findutils -# -CONFIG_findutils=y -# CONFIG_findutils-dbg is not set -# CONFIG_findutils-dev is not set - -# -# gawk -# -CONFIG_gawk=y -# CONFIG_gawk-dbg is not set -# CONFIG_gawk-dev is not set - -# -# git -# -# CONFIG_git is not set -# CONFIG_git-bash-completion is not set -# CONFIG_gitweb is not set -# CONFIG_git-perltools is not set -# CONFIG_git-dev is not set -# CONFIG_git-dbg is not set - -# -# grep -# -CONFIG_grep=y -# CONFIG_grep-dbg is not set -# CONFIG_grep-dev is not set - -# -# groff -# -# CONFIG_groff is not set -# CONFIG_groff-dev is not set -# CONFIG_groff-dbg is not set - -# -# gzip -# -CONFIG_gzip=y -# CONFIG_gzip-dbg is not set -# CONFIG_gzip-dev is not set - -# -# hdparm -# -# CONFIG_hdparm is not set -# CONFIG_wiper is not set -# CONFIG_hdparm-dbg is not set -# CONFIG_hdparm-dev is not set - -# -# less -# -CONFIG_less=y -# CONFIG_less-dev is not set -# CONFIG_less-dbg is not set - -# -# ltp -# -# CONFIG_ltp is not set -# CONFIG_ltp-dev is not set -# CONFIG_ltp-dbg is not set - -# -# man -# -CONFIG_man=y - -# -# man-pages -# -CONFIG_man-pages=y -# CONFIG_man-pages-dbg is not set -# CONFIG_man-pages-dev is not set - -# -# mc -# -# CONFIG_mc is not set -# CONFIG_mc-dev is not set -# CONFIG_mc-helpers-perl is not set -# CONFIG_mc-helpers is not set -# CONFIG_mc-fish is not set -# CONFIG_mc-dbg is not set - -# -# pciutils -# -CONFIG_pciutils=y -# CONFIG_pciutils-ids is not set -# CONFIG_pciutils-dev is not set -# CONFIG_libpci is not set -# CONFIG_pciutils-dbg is not set - -# -# pkgconfig -# -# CONFIG_pkgconfig is not set -# CONFIG_pkgconfig-dbg is not set -# CONFIG_pkgconfig-dev is not set - -# -# screen -# -CONFIG_screen=y -# CONFIG_screen-dbg is not set -# CONFIG_screen-dev is not set - -# -# sed -# -CONFIG_sed=y -# CONFIG_sed-dbg is not set -# CONFIG_sed-dev is not set - -# -# setserial -# -# CONFIG_setserial is not set -# CONFIG_setserial-dev is not set -# CONFIG_setserial-dbg is not set - -# -# smartmontools -# -# CONFIG_smartmontools is not set -# CONFIG_smartmontools-dbg is not set -# CONFIG_smartmontools-dev is not set - -# -# strace -# -# CONFIG_strace is not set -# CONFIG_strace-dev is not set -# CONFIG_strace-dbg is not set - -# -# sysstat -# -# CONFIG_sysstat is not set -# CONFIG_sysstat-dev is not set -# CONFIG_sysstat-dbg is not set - -# -# texinfo -# -# CONFIG_texinfo is not set -# CONFIG_texinfo-dev is not set -# CONFIG_info is not set -# CONFIG_texinfo-dbg is not set - -# -# unzip -# -CONFIG_unzip=y -# CONFIG_unzip-dbg is not set -# CONFIG_unzip-dev is not set - -# -# vim -# -CONFIG_vim=y -CONFIG_vim-syntax=y -# CONFIG_vim-dev is not set -# CONFIG_vim-help is not set -CONFIG_vim-common=y -# CONFIG_vim-vimrc is not set -# CONFIG_vim-tutor is not set -# CONFIG_vim-tools is not set -# CONFIG_vim-dbg is not set - -# -# zip -# -CONFIG_zip=y -# CONFIG_zip-dev is not set -# CONFIG_zip-dbg is not set - -# -# devel -# - -# -# autoconf -# -# CONFIG_autoconf is not set -# CONFIG_autoconf-dev is not set -# CONFIG_autoconf-dbg is not set - -# -# automake -# -# CONFIG_automake is not set -# CONFIG_automake-dev is not set -# CONFIG_automake-dbg is not set - -# -# binutils -# -# CONFIG_binutils is not set -# CONFIG_binutils-dev is not set -# CONFIG_binutils-dbg is not set - -# -# bison -# -# CONFIG_bison is not set -# CONFIG_bison-dbg is not set -# CONFIG_bison-dev is not set - -# -# ccache -# -# CONFIG_ccache is not set -# CONFIG_ccache-dbg is not set -# CONFIG_ccache-dev is not set - -# -# diffstat -# -# CONFIG_diffstat is not set -# CONFIG_diffstat-dbg is not set -# CONFIG_diffstat-dev is not set - -# -# distcc -# -# CONFIG_distcc is not set -# CONFIG_distcc-dbg is not set -# CONFIG_distcc-dev is not set - -# -# expect -# -# CONFIG_expect is not set -# CONFIG_expect-dbg is not set -# CONFIG_expect-dev is not set - -# -# flex -# -# CONFIG_flex is not set -# CONFIG_flex-dev is not set -# CONFIG_flex-dbg is not set - -# -# gmp -# -# CONFIG_gmp is not set -# CONFIG_gmp-dbg is not set -# CONFIG_gmp-dev is not set -# CONFIG_libgmpxx is not set - -# -# gnu-config -# -# CONFIG_gnu-config is not set - -# -# intltool -# -# CONFIG_intltool is not set -# CONFIG_intltool-dev is not set -# CONFIG_intltool-dbg is not set - -# -# libarchive -# -# CONFIG_libarchive is not set -# CONFIG_libarchive-dev is not set -# CONFIG_bsdcpio is not set -# CONFIG_bsdtar is not set -# CONFIG_libarchive-dbg is not set - -# -# libcheck -# -# CONFIG_libcheck is not set -# CONFIG_libcheck-dev is not set -# CONFIG_libcheck-dbg is not set - -# -# libpcre -# -# CONFIG_libpcre is not set -# CONFIG_libpcre-dev is not set -# CONFIG_libpcreposix is not set -# CONFIG_libpcre-dbg is not set -# CONFIG_libpcrecpp is not set -# CONFIG_pcretest is not set -# CONFIG_pcregrep is not set - -# -# lsof -# -CONFIG_lsof=y -# CONFIG_lsof-dev is not set -# CONFIG_lsof-dbg is not set - -# -# make -# -# CONFIG_make is not set -# CONFIG_make-dbg is not set -# CONFIG_make-dev is not set - -# -# mpfr -# -# CONFIG_mpfr is not set -# CONFIG_mpfr-dev is not set -# CONFIG_mpfr-dbg is not set - -# -# perl -# -# CONFIG_perl is not set -# CONFIG_perl-module-unicore is not set -# CONFIG_perl-dev is not set -# CONFIG_perl-misc is not set -# CONFIG_perl-dbg is not set -# CONFIG_perl-module-cpan is not set -# CONFIG_perl-modules is not set -# CONFIG_perl-pod is not set - -# -# python3-nose -# -# CONFIG_python3-nose is not set -# CONFIG_python3-nose-dbg is not set -# CONFIG_python3-nose-dev is not set - -# -# python3-numpy -# -# CONFIG_python3-numpy is not set -# CONFIG_python3-numpy-dev is not set -# CONFIG_python3-numpy-dbg is not set - -# -# python3-scons -# -# CONFIG_python3-scons is not set -# CONFIG_python3-scons-dev is not set -# CONFIG_python3-scons-dbg is not set - -# -# python3-dbus -# -# CONFIG_python3-dbus is not set -# CONFIG_python3-dbus-dbg is not set -# CONFIG_python3-dbus-dev is not set - -# -# python3-pygobject -# -# CONFIG_python3-pygobject is not set -# CONFIG_python3-pygobject-dbg is not set -# CONFIG_python3-pygobject-dev is not set - -# -# quilt -# -# CONFIG_quilt is not set -# CONFIG_quilt-dbg is not set -# CONFIG_quilt-dev is not set -# CONFIG_guards is not set - -# -# ruby -# - -# -# ruby -# -# CONFIG_ruby is not set -# CONFIG_ruby-dev is not set -# CONFIG_ruby-rdoc is not set -# CONFIG_ruby-dbg is not set - -# -# run-postinsts -# -CONFIG_run-postinsts=y -# CONFIG_run-postinsts-dbg is not set -# CONFIG_run-postinsts-dev is not set - -# -# swig -# -# CONFIG_swig is not set -# CONFIG_swig-dev is not set -# CONFIG_swig-dbg is not set - -# -# tcltk -# - -# -# tcl -# -# CONFIG_tcl is not set -# CONFIG_tcl-dev is not set -# CONFIG_tcl-lib is not set -# CONFIG_tcl-dbg is not set - -# -# vala -# -# CONFIG_vala is not set -# CONFIG_vala-dev is not set -# CONFIG_vala-dbg is not set - -# -# fonts -# - -# -# cantarell-fonts -# -# CONFIG_cantarell-fonts is not set -# CONFIG_cantarell-fonts-dbg is not set -# CONFIG_cantarell-fonts-dev is not set - -# -# kernel -# - -# -# userland -# - -# -# kexec-tools -# -# CONFIG_kexec-tools is not set -# CONFIG_kexec-tools-dbg is not set -# CONFIG_kdump is not set -# CONFIG_kexec-tools-dev is not set -# CONFIG_kexec is not set -# CONFIG_vmcore-dmesg is not set - -# -# libs -# - -# -# acl -# -# CONFIG_acl is not set -# CONFIG_acl-dev is not set -# CONFIG_libacl is not set -# CONFIG_acl-dbg is not set - -# -# apr -# -# CONFIG_apr is not set -# CONFIG_apr-dbg is not set -# CONFIG_apr-dev is not set - -# -# apr-util -# -# CONFIG_apr-util is not set -# CONFIG_apr-util-dev is not set -# CONFIG_apr-util-dbg is not set - -# -# attr -# -# CONFIG_attr is not set -# CONFIG_attr-dbg is not set -# CONFIG_attr-dev is not set -# CONFIG_libattr is not set - -# -# bluez5 -# -# CONFIG_bluez5 is not set -# CONFIG_bluez5-testtools is not set -# CONFIG_bluez5-dbg is not set -# CONFIG_bluez5-obex is not set -# CONFIG_bluez5-dev is not set -# CONFIG_bluez5-noinst-tools is not set - -# -# boost -# -# CONFIG_boost is not set -# CONFIG_boost-random is not set -# CONFIG_boost-regex is not set -# CONFIG_boost-atomic is not set -# CONFIG_boost-thread is not set -# CONFIG_boost-serialization is not set -# CONFIG_boost-filesystem is not set -# CONFIG_boost-test is not set -# CONFIG_boost-system is not set -# CONFIG_boost-graph is not set -# CONFIG_boost-container is not set -# CONFIG_boost-date-time is not set -# CONFIG_boost-math is not set -# CONFIG_boost-wave is not set -# CONFIG_boost-chrono is not set -# CONFIG_boost-timer is not set -# CONFIG_boost-dev is not set -# CONFIG_boost-program-options is not set -# CONFIG_boost-iostreams is not set -# CONFIG_boost-dbg is not set -# CONFIG_boost-log is not set - -# -# cairo -# -# CONFIG_cairo is not set -# CONFIG_cairo-gobject is not set -# CONFIG_cairo-script-interpreter is not set -# CONFIG_cairo-perf-utils is not set -# CONFIG_cairo-dbg is not set -# CONFIG_cairo-dev is not set - -# -# db -# -# CONFIG_db is not set -# CONFIG_db-dbg is not set -# CONFIG_db-cxx is not set -# CONFIG_db-dev is not set -# CONFIG_db-bin is not set - -# -# devel -# - -# -# libyaml -# -# CONFIG_libyaml is not set -# CONFIG_libyaml-dev is not set -# CONFIG_libyaml-dbg is not set - -# -# expat -# -# CONFIG_expat is not set -# CONFIG_expat-bin is not set -# CONFIG_expat-dbg is not set -# CONFIG_expat-dev is not set - -# -# faad2 -# -# CONFIG_faad2 is not set -# CONFIG_faad2-dev is not set -# CONFIG_faad2-dbg is not set - -# -# ffmpeg -# -# CONFIG_ffmpeg is not set -# CONFIG_ffmpeg-dbg is not set -# CONFIG_ffmpeg-dev is not set - -# -# flac -# -# CONFIG_flac is not set -# CONFIG_flac-dbg is not set -# CONFIG_libflacPLUSPLUS is not set -# CONFIG_libflac is not set -# CONFIG_flac-dev is not set - -# -# fontconfig -# -# CONFIG_fontconfig is not set -# CONFIG_fontconfig-utils is not set -# CONFIG_fontconfig-dbg is not set -# CONFIG_fontconfig-dev is not set - -# -# freetype -# -# CONFIG_freetype is not set -# CONFIG_freetype-dbg is not set -# CONFIG_freetype-dev is not set - -# -# gdbm -# -# CONFIG_gdbm is not set -# CONFIG_gdbm-bin is not set -# CONFIG_gdbm-compat is not set -# CONFIG_gdbm-dbg is not set -# CONFIG_gdbm-dev is not set - -# -# gdk-pixbuf -# -# CONFIG_gdk-pixbuf is not set -# CONFIG_gdk-pixbuf-xlib is not set -# CONFIG_gdk-pixbuf-dbg is not set -# CONFIG_gdk-pixbuf-dev is not set - -# -# gettext -# -# CONFIG_gettext is not set -# CONFIG_libgettextlib is not set -# CONFIG_gettext-dev is not set -# CONFIG_gettext-runtime is not set -# CONFIG_libgettextsrc is not set -# CONFIG_gettext-dbg is not set - -# -# glib-networking -# -# CONFIG_glib-networking is not set -# CONFIG_glib-networking-dbg is not set -# CONFIG_glib-networking-dev is not set - -# -# gobject-introspection -# -# CONFIG_gobject-introspection is not set -# CONFIG_gobject-introspection-dev is not set -# CONFIG_gobject-introspection-dbg is not set - -# -# gtk+ -# -# CONFIG_gtkPLUS is not set -# CONFIG_gtkPLUS-dev is not set -# CONFIG_gtkPLUS-dbg is not set -# CONFIG_libgail is not set -# CONFIG_gtk-demo is not set - -# -# gtk+3 -# -# CONFIG_gtkPLUS3 is not set -# CONFIG_gtkPLUS3-demo is not set -# CONFIG_gtkPLUS3-dev is not set -# CONFIG_gtkPLUS3-dbg is not set - -# -# harfbuzz -# -# CONFIG_harfbuzz is not set -# CONFIG_harfbuzz-icu is not set -# CONFIG_harfbuzz-icu-dev is not set -# CONFIG_harfbuzz-bin is not set -# CONFIG_harfbuzz-dev is not set -# CONFIG_harfbuzz-dbg is not set - -# -# libaio -# -# CONFIG_libaio is not set -# CONFIG_libaio-dev is not set -# CONFIG_libaio-dbg is not set - -# -# libcap -# -# CONFIG_libcap is not set -# CONFIG_libcap-dbg is not set -# CONFIG_libcap-dev is not set -# CONFIG_libcap-bin is not set - -# -# libdaemon -# -# CONFIG_libdaemon is not set -# CONFIG_libdaemon-dbg is not set -# CONFIG_libdaemon-dev is not set - -# -# libdmx -# -# CONFIG_libdmx is not set -# CONFIG_libdmx-dbg is not set -# CONFIG_libdmx-dev is not set - -# -# libeigen -# -# CONFIG_libeigen-dev is not set -# CONFIG_libeigen-dbg is not set - -# -# libepoxy -# -# CONFIG_libepoxy is not set -# CONFIG_libepoxy-dev is not set -# CONFIG_libepoxy-dbg is not set - -# -# libevdev -# -# CONFIG_libevdev is not set -# CONFIG_libevdev-dbg is not set -# CONFIG_libevdev-dev is not set - -# -# libevent -# -# CONFIG_libevent is not set -# CONFIG_libevent-dev is not set -# CONFIG_libevent-dbg is not set - -# -# libexif -# -# CONFIG_libexif is not set -# CONFIG_libexif-dbg is not set -# CONFIG_libexif-dev is not set - -# -# libffi -# -# CONFIG_libffi is not set -# CONFIG_libffi-dev is not set -# CONFIG_libffi-dbg is not set - -# -# libfontenc -# -# CONFIG_libfontenc is not set -# CONFIG_libfontenc-dev is not set -# CONFIG_libfontenc-dbg is not set - -# -# libgcrypt -# -# CONFIG_libgcrypt is not set -# CONFIG_libgcrypt-dbg is not set -# CONFIG_libgcrypt-dev is not set -# CONFIG_dumpsexp-dev is not set - -# -# libgpg-error -# -# CONFIG_libgpg-error is not set -# CONFIG_libgpg-error-dbg is not set -# CONFIG_libgpg-error-dev is not set - -# -# libgphoto2 -# -# CONFIG_libgphoto2 is not set -# CONFIG_libgphoto2-dbg is not set -# CONFIG_libgphotoport is not set -# CONFIG_libgphoto2-bin is not set -# CONFIG_libgphoto2-camlibs is not set -# CONFIG_libgphoto2-dev is not set - -# -# libgpiod -# -# CONFIG_libgpiod is not set -# CONFIG_libgpiod-dev is not set -# CONFIG_libgpiod-dbg is not set - -# -# libgudev -# -# CONFIG_libgudev is not set -# CONFIG_libgudev-dev is not set -# CONFIG_libgudev-dbg is not set - -# -# libical -# -# CONFIG_libical is not set -# CONFIG_libical-dev is not set -# CONFIG_libical-dbg is not set - -# -# libice -# -# CONFIG_libice is not set -# CONFIG_libice-dbg is not set -# CONFIG_libice-dev is not set - -# -# libid3tag -# -# CONFIG_libid3tag is not set -# CONFIG_libid3tag-dbg is not set -# CONFIG_libid3tag-dev is not set - -# -# libidn -# -# CONFIG_libidn is not set -# CONFIG_idn is not set -# CONFIG_libidn-dbg is not set -# CONFIG_libidn-dev is not set - -# -# libinput -# -# CONFIG_libinput is not set -# CONFIG_libinput-dbg is not set -# CONFIG_libinput-dev is not set - -# -# libjpeg-turbo -# -# CONFIG_libjpeg-turbo is not set -# CONFIG_libturbojpeg is not set -# CONFIG_jpeg-tools is not set -# CONFIG_libjpeg-turbo-dbg is not set -# CONFIG_libjpeg-turbo-dev is not set - -# -# libmetal -# -# CONFIG_libmetal is not set -# CONFIG_libmetal-dbg is not set -# CONFIG_libmetal-dev is not set - -# -# libmpc -# -# CONFIG_libmpc is not set -# CONFIG_libmpc-dev is not set -# CONFIG_libmpc-dbg is not set - -# -# libnet -# -# CONFIG_libnet is not set -# CONFIG_libnet-dev is not set -# CONFIG_libnet-dbg is not set - -# -# libnewt -# -# CONFIG_libnewt is not set -# CONFIG_libnewt-dev is not set -# CONFIG_libnewt-dbg is not set -# CONFIG_whiptail is not set - -# -# libnotify -# -# CONFIG_libnotify is not set -# CONFIG_libnotify-dbg is not set -# CONFIG_libnotify-dev is not set - -# -# libnss-mdns -# -# CONFIG_libnss-mdns is not set -# CONFIG_libnss-mdns-dbg is not set -# CONFIG_libnss-mdns-dev is not set - -# -# libogg -# -# CONFIG_libogg is not set -# CONFIG_libogg-dev is not set -# CONFIG_libogg-dbg is not set - -# -# libpciaccess -# -# CONFIG_libpciaccess is not set -# CONFIG_libpciaccess-dbg is not set -# CONFIG_libpciaccess-dev is not set - -# -# libpng -# -# CONFIG_libpng is not set -# CONFIG_libpng-dev is not set -# CONFIG_libpng-dbg is not set -# CONFIG_libpng-tools is not set - -# -# libproxy -# -# CONFIG_libproxy is not set -# CONFIG_libproxy-dev is not set -# CONFIG_libproxy-dbg is not set - -# -# libsamplerate0 -# -# CONFIG_libsamplerate0 is not set -# CONFIG_libsamplerate0-dbg is not set -# CONFIG_libsamplerate0-dev is not set - -# -# libsecret -# -# CONFIG_libsecret is not set -# CONFIG_libsecret-dbg is not set -# CONFIG_libsecret-dev is not set - -# -# libsm -# -# CONFIG_libsm is not set -# CONFIG_libsm-dev is not set -# CONFIG_libsm-dbg is not set - -# -# libtasn1 -# -# CONFIG_libtasn1 is not set -# CONFIG_libtasn1-bin is not set -# CONFIG_libtasn1-dev is not set -# CONFIG_libtasn1-dbg is not set - -# -# libtheora -# -# CONFIG_libtheora is not set -# CONFIG_libtheora-dbg is not set -# CONFIG_libtheora-dev is not set - -# -# libtool -# -# CONFIG_libtool is not set -# CONFIG_libtool-dbg is not set -# CONFIG_libltdl is not set -# CONFIG_libtool-dev is not set - -# -# liburcu -# -# CONFIG_liburcu is not set -# CONFIG_liburcu-dev is not set -# CONFIG_liburcu-dbg is not set - -# -# libusb-compat -# -# CONFIG_libusb-compat is not set -# CONFIG_libusb-compat-dev is not set -# CONFIG_libusb-compat-dbg is not set - -# -# libusb1 -# -# CONFIG_libusb1 is not set -# CONFIG_libusb1-dbg is not set -# CONFIG_libusb1-dev is not set - -# -# libvorbis -# -# CONFIG_libvorbis is not set -# CONFIG_libvorbis-dbg is not set -# CONFIG_libvorbis-dev is not set - -# -# libwebp -# -# CONFIG_libwebp is not set -# CONFIG_libwebp-bin is not set -# CONFIG_libwebp-dev is not set -# CONFIG_libwebp-dbg is not set - -# -# libx11 -# -# CONFIG_libx11 is not set -# CONFIG_libx11-dbg is not set -# CONFIG_libx11-xcb is not set -# CONFIG_libx11-dev is not set - -# -# libxau -# -# CONFIG_libxau is not set -# CONFIG_libxau-dbg is not set -# CONFIG_libxau-dev is not set - -# -# libxcomposite -# -# CONFIG_libxcomposite is not set -# CONFIG_libxcomposite-dbg is not set -# CONFIG_libxcomposite-dev is not set - -# -# libxcursor -# -# CONFIG_libxcursor is not set -# CONFIG_libxcursor-dev is not set -# CONFIG_libxcursor-dbg is not set - -# -# libxdamage -# -# CONFIG_libxdamage is not set -# CONFIG_libxdamage-dev is not set -# CONFIG_libxdamage-dbg is not set - -# -# libxdmcp -# -# CONFIG_libxdmcp is not set -# CONFIG_libxdmcp-dev is not set -# CONFIG_libxdmcp-dbg is not set - -# -# libxext -# -# CONFIG_libxext is not set -# CONFIG_libxext-dbg is not set -# CONFIG_libxext-dev is not set - -# -# libxfixes -# -# CONFIG_libxfixes is not set -# CONFIG_libxfixes-dev is not set -# CONFIG_libxfixes-dbg is not set - -# -# libxfont -# -# CONFIG_libxfont is not set -# CONFIG_libxfont-dev is not set -# CONFIG_libxfont-dbg is not set - -# -# libxft -# -# CONFIG_libxft is not set -# CONFIG_libxft-dev is not set -# CONFIG_libxft-dbg is not set - -# -# libxi -# -# CONFIG_libxi is not set -# CONFIG_libxi-dbg is not set -# CONFIG_libxi-dev is not set - -# -# libxinerama -# -# CONFIG_libxinerama is not set -# CONFIG_libxinerama-dbg is not set -# CONFIG_libxinerama-dev is not set - -# -# libxkbcommon -# -# CONFIG_libxkbcommon is not set -# CONFIG_libxkbcommon-dbg is not set -# CONFIG_libxkbcommon-dev is not set - -# -# libxkbfile -# -# CONFIG_libxkbfile is not set -# CONFIG_libxkbfile-dbg is not set -# CONFIG_libxkbfile-dev is not set - -# -# libxml-parser-perl -# -# CONFIG_libxml-parser-perl is not set -# CONFIG_libxml-parser-perl-dbg is not set -# CONFIG_libxml-parser-perl-dev is not set - -# -# libxml2 -# -# CONFIG_libxml2 is not set -# CONFIG_libxml2-dbg is not set -# CONFIG_libxml2-dev is not set -# CONFIG_libxml2-python is not set - -# -# libxmu -# -# CONFIG_libxmu is not set -# CONFIG_libxmu-dev is not set -# CONFIG_libxmu-dbg is not set -# CONFIG_libxmuu is not set - -# -# libxrandr -# -# CONFIG_libxrandr is not set -# CONFIG_libxrandr-dev is not set -# CONFIG_libxrandr-dbg is not set - -# -# libxrender -# -# CONFIG_libxrender is not set -# CONFIG_libxrender-dev is not set -# CONFIG_libxrender-dbg is not set - -# -# libxres -# -# CONFIG_libxres is not set -# CONFIG_libxres-dev is not set -# CONFIG_libxres-dbg is not set - -# -# libxslt -# -# CONFIG_libxslt is not set -# CONFIG_libxslt-dev is not set -# CONFIG_libxslt-bin is not set -# CONFIG_libxslt-dbg is not set - -# -# libxt -# -# CONFIG_libxt is not set -# CONFIG_libxt-dbg is not set -# CONFIG_libxt-dev is not set - -# -# libxtst -# -# CONFIG_libxtst is not set -# CONFIG_libxtst-dev is not set -# CONFIG_libxtst-dbg is not set - -# -# libxv -# -# CONFIG_libxv is not set -# CONFIG_libxv-dbg is not set -# CONFIG_libxv-dev is not set - -# -# libxxf86vm -# -# CONFIG_libxxf86vm is not set -# CONFIG_libxxf86vm-dbg is not set -# CONFIG_libxxf86vm-dev is not set - -# -# lzo -# -# CONFIG_lzo is not set -# CONFIG_lzo-dbg is not set -# CONFIG_lzo-dev is not set - -# -# mtdev -# -# CONFIG_mtdev is not set -# CONFIG_mtdev-dbg is not set -# CONFIG_mtdev-dev is not set - -# -# multimedia -# - -# -# alsa-lib -# -# CONFIG_alsa-lib is not set -# CONFIG_alsa-lib-dbg is not set -# CONFIG_alsa-lib-dev is not set -# CONFIG_alsa-server is not set -# CONFIG_libasound is not set -# CONFIG_alsa-conf-base is not set -# CONFIG_alsa-conf is not set -# CONFIG_alsa-oss is not set - -# -# libsndfile1 -# -# CONFIG_libsndfile1 is not set -# CONFIG_libsndfile1-dbg is not set -# CONFIG_libsndfile1-dev is not set -# CONFIG_libsndfile1-bin is not set - -# -# pulseaudio -# -# CONFIG_pulseaudio is not set -# CONFIG_pulseaudio-misc is not set -# CONFIG_libpulse-mainloop-glib is not set -# CONFIG_pulseaudio-dbg is not set -# CONFIG_libpulsecommon is not set -# CONFIG_pulseaudio-module-console-kit is not set -# CONFIG_pulseaudio-bash-completion is not set -# CONFIG_libpulse-simple is not set -# CONFIG_libpulsecore is not set -# CONFIG_libpulse is not set -# CONFIG_pulseaudio-dev is not set -# CONFIG_pulseaudio-server is not set - -# -# taglib -# -# CONFIG_taglib is not set -# CONFIG_taglib-dev is not set -# CONFIG_taglib-c is not set -# CONFIG_taglib-dbg is not set - -# -# ncurses -# -# CONFIG_ncurses is not set -# CONFIG_ncurses-terminfo-base is not set -# CONFIG_ncurses-dev is not set -# CONFIG_ncurses-tools is not set -# CONFIG_ncurses-terminfo is not set -# CONFIG_ncurses-dbg is not set - -# -# neon -# -# CONFIG_neon is not set -# CONFIG_neon-dev is not set -# CONFIG_neon-dbg is not set - -# -# nettle -# -# CONFIG_nettle is not set -# CONFIG_nettle-dev is not set -# CONFIG_nettle-dbg is not set - -# -# network -# - -# -# libnl -# -# CONFIG_libnl is not set -# CONFIG_libnl-xfrm is not set -# CONFIG_libnl-nf is not set -# CONFIG_libnl-dev is not set -# CONFIG_libnl-cli is not set -# CONFIG_libnl-dbg is not set -# CONFIG_libnl-route is not set -# CONFIG_libnl-idiag is not set -# CONFIG_libnl-genl is not set - -# -# libpcap -# -# CONFIG_libpcap is not set -# CONFIG_libpcap-dev is not set -# CONFIG_libpcap-dbg is not set - -# -# libsocketcan -# -# CONFIG_libsocketcan is not set -# CONFIG_libsocketcan-dbg is not set -# CONFIG_libsocketcan-dev is not set - -# -# libtirpc -# -# CONFIG_libtirpc is not set -# CONFIG_libtirpc-dev is not set -# CONFIG_libtirpc-dbg is not set - -# -# openssl -# -# CONFIG_openssl is not set -# CONFIG_openssl-bin is not set -# CONFIG_openssl-conf is not set -# CONFIG_openssl-dbg is not set -# CONFIG_openssl-engines is not set -# CONFIG_libcrypto is not set -# CONFIG_openssl-dev is not set -# CONFIG_openssl-misc is not set -# CONFIG_libssl is not set - -# -# open-amp -# -# CONFIG_open-amp is not set -# CONFIG_open-amp-dbg is not set -# CONFIG_open-amp-dev is not set - -# -# opencv -# -# CONFIG_opencv is not set -# CONFIG_opencv-dev is not set -# CONFIG_opencv-apps is not set -# CONFIG_opencv-samples is not set -# CONFIG_opencv-dbg is not set - -# -# pango -# -# CONFIG_pango is not set -# CONFIG_pango-dbg is not set -# CONFIG_pango-dev is not set - -# -# popt -# -# CONFIG_popt is not set -# CONFIG_popt-dbg is not set -# CONFIG_popt-dev is not set - -# -# readline -# -# CONFIG_readline is not set -# CONFIG_readline-dev is not set -# CONFIG_readline-dbg is not set - -# -# sbc -# -# CONFIG_sbc is not set -# CONFIG_sbc-dev is not set -# CONFIG_sbc-dbg is not set - -# -# slang -# -# CONFIG_slang is not set -# CONFIG_slang-dev is not set -# CONFIG_slang-dbg is not set - -# -# speex -# -# CONFIG_speex is not set -# CONFIG_speex-dev is not set -# CONFIG_speex-dbg is not set - -# -# speexdsp -# -# CONFIG_speexdsp is not set -# CONFIG_speexdsp-dev is not set -# CONFIG_speexdsp-dbg is not set - -# -# sqlite3 -# -# CONFIG_sqlite3 is not set -# CONFIG_libsqlite3 is not set -# CONFIG_sqlite3-dbg is not set -# CONFIG_libsqlite3-dev is not set - -# -# startup-notification -# -# CONFIG_startup-notification is not set -# CONFIG_startup-notification-dev is not set -# CONFIG_startup-notification-dbg is not set - -# -# tremor -# -# CONFIG_tremor is not set -# CONFIG_tremor-dev is not set -# CONFIG_tremor-dbg is not set - -# -# which -# -# CONFIG_which is not set -# CONFIG_which-dev is not set -# CONFIG_which-dbg is not set - -# -# xrt -# -# CONFIG_xrt is not set -# CONFIG_xrt-dev is not set -# CONFIG_xrt-dbg is not set - -# -# zocl -# -# CONFIG_zocl is not set -# CONFIG_zocl-dev is not set -# CONFIG_zocl-dbg is not set - -# -# opencl-clhpp -# -# CONFIG_opencl-clhpp-dev is not set - -# -# opencl-headers -# -# CONFIG_opencl-headers is not set - -# -# protobuf -# -# CONFIG_protobuf is not set - -# -# zlib -# -# CONFIG_zlib is not set -# CONFIG_zlib-dbg is not set -# CONFIG_zlib-dev is not set - -# -# misc -# - -# -# alsa-state -# -# CONFIG_alsa-state is not set -# CONFIG_alsa-state-dev is not set -# CONFIG_alsa-state-dbg is not set -# CONFIG_alsa-states is not set - -# -# apache2 -# -# CONFIG_apache2 is not set -# CONFIG_apache2-dbg is not set -# CONFIG_apache2-dev is not set - -# -# at-spi2-atk -# -# CONFIG_at-spi2-atk is not set -# CONFIG_at-spi2-atk-dbg is not set -# CONFIG_at-spi2-atk-gnome is not set -# CONFIG_at-spi2-atk-dev is not set -# CONFIG_at-spi2-atk-gtk2 is not set - -# -# at-spi2-core -# -# CONFIG_at-spi2-core is not set -# CONFIG_at-spi2-core-dev is not set -# CONFIG_at-spi2-core-dbg is not set - -# -# babeltrace -# -# CONFIG_babeltrace is not set -# CONFIG_babeltrace-dev is not set -# CONFIG_babeltrace-dbg is not set - -# -# blktool -# -# CONFIG_blktool is not set -# CONFIG_blktool-dev is not set -# CONFIG_blktool-dbg is not set - -# -# blktrace -# -# CONFIG_blktrace is not set -# CONFIG_blktrace-dbg is not set -# CONFIG_blktrace-dev is not set - -# -# ca-certificates -# -# CONFIG_ca-certificates is not set -# CONFIG_ca-certificates-dev is not set -# CONFIG_ca-certificates-dbg is not set - -# -# chrpath -# -# CONFIG_chrpath is not set -# CONFIG_chrpath-dev is not set -# CONFIG_chrpath-dbg is not set - -# -# connman -# -# CONFIG_connman is not set -# CONFIG_connman-tests is not set -# CONFIG_connman-dev is not set -# CONFIG_connman-dbg is not set -# CONFIG_connman-tools is not set -# CONFIG_connman-wait-online is not set -# CONFIG_connman-client is not set - -# -# connman-conf -# -# CONFIG_connman-conf-dbg is not set - -# -# consolekit -# -# CONFIG_consolekit is not set -# CONFIG_consolekit-dbg is not set -# CONFIG_consolekit-dev is not set - -# -# coreutils -# -# CONFIG_coreutils is not set -# CONFIG_coreutils-dev is not set -# CONFIG_coreutils-dbg is not set - -# -# cpufrequtils -# -# CONFIG_cpufrequtils is not set -# CONFIG_cpufrequtils-dev is not set -# CONFIG_cpufrequtils-dbg is not set - -# -# cryptodev-linux -# -# CONFIG_cryptodev-linux is not set -# CONFIG_cryptodev-linux-dev is not set -# CONFIG_cryptodev-linux-dbg is not set - -# -# encodings -# -# CONFIG_encodings is not set -# CONFIG_encodings-dev is not set -# CONFIG_encodings-dbg is not set - -# -# epiphany -# -# CONFIG_epiphany is not set -# CONFIG_epiphany-dbg is not set -# CONFIG_epiphany-dev is not set - -# -# libudev -# -# CONFIG_libudev is not set -CONFIG_udev-extraconf=y - -# -# fbset -# -# CONFIG_fbset is not set -# CONFIG_fbset-dbg is not set -# CONFIG_fbset-dev is not set - -# -# fbset-modes -# -# CONFIG_fbset-modes is not set -# CONFIG_fbset-modes-dev is not set -# CONFIG_fbset-modes-dbg is not set - -# -# font-util -# -# CONFIG_font-util is not set -# CONFIG_font-util-dev is not set -# CONFIG_font-util-dbg is not set - -# -# gcc-runtime -# -# CONFIG_libstdcPLUSPLUS is not set -# CONFIG_libstdcPLUSPLUS-dev is not set - -# -# gcc-sanitizers -# -# CONFIG_gcc-sanitizers is not set -# CONFIG_libubsan-dev is not set -# CONFIG_libubsan is not set -# CONFIG_gcc-sanitizers-dbg is not set -# CONFIG_libasan is not set -# CONFIG_libasan-dev is not set - -# -# gcr -# -# CONFIG_gcr is not set -# CONFIG_gcr-dev is not set -# CONFIG_gcr-dbg is not set - -# -# gdb -# -# CONFIG_gdb is not set -# CONFIG_gdb-dbg is not set -# CONFIG_gdb-dev is not set -# CONFIG_gdbserver is not set - -# -# glib-2.0 -# -# CONFIG_glib-2.0 is not set -# CONFIG_glib-2.0-codegen is not set -# CONFIG_glib-2.0-utils is not set -# CONFIG_glib-2.0-dbg is not set -# CONFIG_glib-2.0-bash-completion is not set -# CONFIG_glib-2.0-dev is not set - -# -# glibc -# -# CONFIG_glibc is not set -# CONFIG_glibc-dev is not set -# CONFIG_glibc-dbg is not set -# CONFIG_ldd is not set - -# -# gnome-desktop-testing -# -# CONFIG_gnome-desktop-testing is not set -# CONFIG_gnome-desktop-testing-dbg is not set -# CONFIG_gnome-desktop-testing-dev is not set - -# -# gnutls -# -# CONFIG_gnutls is not set -# CONFIG_gnutls-dev is not set -# CONFIG_gnutls-dbg is not set -# CONFIG_gnutls-bin is not set -# CONFIG_gnutls-xx is not set -# CONFIG_gnutls-openssl is not set - -# -# gsettings-desktop-schemas -# -# CONFIG_gsettings-desktop-schemas is not set -# CONFIG_gsettings-desktop-schemas-dev is not set -# CONFIG_gsettings-desktop-schemas-dbg is not set - -# -# gst-player -# -# CONFIG_gst-player is not set - -# -# gstreamer1.0-plugins-bad -# -# CONFIG_gstreamer1.0-plugins-bad is not set -# CONFIG_gstreamer1.0-plugins-bad-meta is not set -# CONFIG_gstreamer1.0-plugins-bad-dev is not set -# CONFIG_gstreamer1.0-plugins-bad-dbg is not set - -# -# gstreamer1.0-plugins-base -# -# CONFIG_gstreamer1.0-plugins-base is not set -# CONFIG_gstreamer1.0-plugins-base-dev is not set -# CONFIG_gstreamer1.0-plugins-base-apps is not set -# CONFIG_gstreamer1.0-plugins-base-meta is not set -# CONFIG_gstreamer1.0-plugins-base-dbg is not set - -# -# gstreamer1.0-plugins-good -# -# CONFIG_gstreamer1.0-plugins-good is not set -# CONFIG_gstreamer1.0-plugins-good-meta is not set -# CONFIG_gstreamer1.0-plugins-good-dev is not set -# CONFIG_gstreamer1.0-plugins-good-dbg is not set - -# -# hicolor-icon-theme -# -# CONFIG_hicolor-icon-theme is not set -# CONFIG_hicolor-icon-theme-dbg is not set -# CONFIG_hicolor-icon-theme-dev is not set - -# -# icu -# -# CONFIG_icu is not set -# CONFIG_libicudata is not set -# CONFIG_libicuio is not set -# CONFIG_libicui18n is not set -# CONFIG_icu-dbg is not set -# CONFIG_libicuuc is not set -# CONFIG_libicutu is not set -# CONFIG_icu-dev is not set - -# -# iotop -# -# CONFIG_iotop is not set -# CONFIG_iotop-dev is not set -# CONFIG_iotop-dbg is not set - -# -# iptables -# -# CONFIG_iptables is not set -# CONFIG_iptables-dbg is not set -# CONFIG_iptables-dev is not set - -# -# iso-codes -# -# CONFIG_iso-codes is not set -# CONFIG_iso-codes-dbg is not set -# CONFIG_iso-codes-dev is not set - -# -# json-c -# -# CONFIG_json-c is not set -# CONFIG_json-c-dbg is not set -# CONFIG_json-c-dev is not set - -# -# l3afpad -# -# CONFIG_l3afpad is not set -# CONFIG_l3afpad-dev is not set -# CONFIG_l3afpad-dbg is not set - -# -# lttng-ust -# -# CONFIG_lttng-ust is not set -# CONFIG_lttng-ust-dbg is not set -# CONFIG_lttng-ust-bin is not set -# CONFIG_lttng-ust-dev is not set - -# -# m4 -# -# CONFIG_m4 is not set -# CONFIG_m4-dbg is not set -# CONFIG_m4-dev is not set - -# -# matchbox-config-gtk -# -# CONFIG_matchbox-config-gtk is not set -# CONFIG_matchbox-config-gtk-dev is not set -# CONFIG_matchbox-config-gtk-dbg is not set - -# -# matchbox-panel-2 -# -# CONFIG_matchbox-panel-2 is not set -# CONFIG_matchbox-panel-2-dbg is not set -# CONFIG_matchbox-panel-2-dev is not set - -# -# mdadm -# -# CONFIG_mdadm is not set -# CONFIG_mdadm-dbg is not set -# CONFIG_mdadm-dev is not set - -# -# mkfontdir -# -# CONFIG_mkfontdir is not set - -# -# mkfontscale -# -# CONFIG_mkfontscale is not set -# CONFIG_mkfontscale-dbg is not set -# CONFIG_mkfontscale-dev is not set - -# -# net-tools -# -CONFIG_net-tools=y -# CONFIG_net-tools-dbg is not set -# CONFIG_net-tools-dev is not set - -# -# nicstat -# -# CONFIG_nicstat is not set -# CONFIG_nicstat-dbg is not set -# CONFIG_nicstat-dev is not set - -# -# ofono -# -# CONFIG_ofono is not set -# CONFIG_ofono-tests is not set -# CONFIG_ofono-dev is not set -# CONFIG_ofono-dbg is not set - -# -# openamp-fw-echo-testd -# -# CONFIG_openamp-fw-echo-testd is not set -# CONFIG_openamp-fw-echo-testd-dev is not set -# CONFIG_openamp-fw-echo-testd-dbg is not set - -# -# openamp-fw-mat-muld -# -# CONFIG_openamp-fw-mat-muld is not set -# CONFIG_openamp-fw-mat-muld-dev is not set -# CONFIG_openamp-fw-mat-muld-dbg is not set - -# -# openamp-fw-rpc-demo -# -# CONFIG_openamp-fw-rpc-demo is not set -# CONFIG_openamp-fw-rpc-demo-dev is not set -# CONFIG_openamp-fw-rpc-demo-dbg is not set - -# -# opkg-arch-config -# -# CONFIG_opkg-arch-config is not set -# CONFIG_opkg-arch-config-dbg is not set -# CONFIG_opkg-arch-config-dev is not set - -# -# orc -# -# CONFIG_orc is not set -# CONFIG_orc-dbg is not set -# CONFIG_orc-dev is not set - -# -# p11-kit -# -# CONFIG_p11-kit is not set -# CONFIG_p11-kit-dev is not set -# CONFIG_p11-kit-dbg is not set - -# -# packagegroup-core-boot -# -CONFIG_packagegroup-core-boot=y -# CONFIG_packagegroup-core-boot-dev is not set -# CONFIG_packagegroup-core-boot-dbg is not set - -# -# packagegroup-core-buildessential -# -CONFIG_packagegroup-core-buildessential=y -# CONFIG_packagegroup-core-buildessential-dev is not set -# CONFIG_packagegroup-core-buildessential-dbg is not set - -# -# packagegroup-core-sdk -# -# CONFIG_packagegroup-core-sdk is not set -# CONFIG_packagegroup-core-sdk-dbg is not set -# CONFIG_packagegroup-core-sdk-dev is not set - -# -# packagegroup-core-ssh-dropbear -# -# CONFIG_packagegroup-core-ssh-dropbear is not set -# CONFIG_packagegroup-core-ssh-dropbear-dbg is not set -# CONFIG_packagegroup-core-ssh-dropbear-dev is not set - -# -# packagegroup-core-standalone-sdk-target -# -# CONFIG_packagegroup-core-standalone-sdk-target is not set -# CONFIG_packagegroup-core-standalone-sdk-target-dev is not set -# CONFIG_packagegroup-core-standalone-sdk-target-dbg is not set - -# -# packagegroup-core-tools-debug -# -# CONFIG_packagegroup-core-tools-debug is not set -# CONFIG_packagegroup-core-tools-debug-dev is not set -# CONFIG_packagegroup-core-tools-debug-dbg is not set - -# -# packagegroup-core-tools-profile -# -# CONFIG_packagegroup-core-tools-profile is not set -# CONFIG_packagegroup-core-tools-profile-dbg is not set -# CONFIG_packagegroup-core-tools-profile-dev is not set - -# -# packagegroup-core-tools-testapps -# -# CONFIG_packagegroup-core-tools-testapps is not set -# CONFIG_packagegroup-core-tools-testapps-dbg is not set -# CONFIG_packagegroup-core-tools-testapps-dev is not set - -# -# packagegroup-core-x11 -# -# CONFIG_packagegroup-core-x11 is not set -# CONFIG_packagegroup-core-x11-dbg is not set -# CONFIG_packagegroup-core-x11-utils-dbg is not set -# CONFIG_packagegroup-core-x11-dev is not set -# CONFIG_packagegroup-core-x11-utils is not set -# CONFIG_packagegroup-core-x11-utils-dev is not set - -# -# packagegroup-core-x11-base -# -# CONFIG_packagegroup-core-x11-base is not set -# CONFIG_packagegroup-core-x11-base-dev is not set -# CONFIG_packagegroup-core-x11-base-dbg is not set - -# -# packagegroup-core-x11-xserver -# -# CONFIG_packagegroup-core-x11-xserver is not set -# CONFIG_packagegroup-core-x11-xserver-dev is not set -# CONFIG_packagegroup-core-x11-xserver-dbg is not set - -# -# packagegroup-self-hosted -# -# CONFIG_packagegroup-self-hosted is not set -# CONFIG_packagegroup-self-hosted-extended-dev is not set -# CONFIG_packagegroup-self-hosted-debug-dev is not set -# CONFIG_packagegroup-self-hosted-dev is not set -# CONFIG_packagegroup-self-hosted-extended-dbg is not set -# CONFIG_packagegroup-self-hosted-sdk-dev is not set -# CONFIG_packagegroup-self-hosted-dbg is not set -# CONFIG_packagegroup-self-hosted-graphics-dev is not set -# CONFIG_packagegroup-self-hosted-sdk is not set -# CONFIG_packagegroup-self-hosted-debug is not set -# CONFIG_packagegroup-self-hosted-host-tools is not set -# CONFIG_packagegroup-self-hosted-debug-dbg is not set -# CONFIG_packagegroup-self-hosted-extended is not set -# CONFIG_packagegroup-self-hosted-host-tools-dev is not set -# CONFIG_packagegroup-self-hosted-graphics-dbg is not set -# CONFIG_packagegroup-self-hosted-sdk-dbg is not set -# CONFIG_packagegroup-self-hosted-host-tools-dbg is not set -# CONFIG_packagegroup-self-hosted-graphics is not set - -# -# perf -# -CONFIG_perf=y -# CONFIG_perf-tests is not set -# CONFIG_perf-python is not set -# CONFIG_perf-dbg is not set -# CONFIG_perf-dev is not set - -# -# pixman -# -# CONFIG_pixman is not set -# CONFIG_pixman-dbg is not set -# CONFIG_pixman-dev is not set - -# -# powertop -# -# CONFIG_powertop is not set -# CONFIG_powertop-dev is not set -# CONFIG_powertop-dbg is not set - -# -# ptest-runner -# -# CONFIG_ptest-runner is not set -# CONFIG_ptest-runner-dev is not set -# CONFIG_ptest-runner-dbg is not set - -# -# python3 -# -# CONFIG_python3 is not set -# CONFIG_python3-smtpd is not set -# CONFIG_python3-syslog is not set -# CONFIG_python3-pickle is not set -# CONFIG_python3-dbg is not set -# CONFIG_python3-db is not set -# CONFIG_python3-fcntl is not set -# CONFIG_python3-html is not set -# CONFIG_python3-core is not set -# CONFIG_python3-distutils is not set -# CONFIG_python3-terminal is not set -# CONFIG_python3-pprint is not set -# CONFIG_python3-tkinter is not set -# CONFIG_python3-unixadmin is not set -# CONFIG_python3-mime is not set -# CONFIG_python3-logging is not set -# CONFIG_python3-resource is not set -# CONFIG_python3-email is not set -# CONFIG_python3-math is not set -# CONFIG_python3-json is not set -# CONFIG_python3-image is not set -# CONFIG_python3-stringold is not set -# CONFIG_python3-pydoc is not set -# CONFIG_python3-codecs is not set -# CONFIG_python3-debugger is not set -# CONFIG_python3-xmlrpc is not set -# CONFIG_python3-io is not set -# CONFIG_python3-pkgutil is not set -# CONFIG_python3-idle is not set -# CONFIG_python3-difflib is not set -# CONFIG_python3-unittest is not set -# CONFIG_python3-netserver is not set -# CONFIG_python3-netclient is not set -# CONFIG_python3-gdbm is not set -# CONFIG_python3-profile is not set -# CONFIG_python3-sqlite3 is not set -# CONFIG_python3-2to3 is not set -# CONFIG_libpython3 is not set -# CONFIG_python3-xml is not set -# CONFIG_python3-threading is not set -# CONFIG_python3-modules is not set -# CONFIG_python3-dev is not set -# CONFIG_python3-curses is not set -# CONFIG_python3-multiprocessing is not set -# CONFIG_python3-crypt is not set -# CONFIG_python3-compression is not set -# CONFIG_python3-shell is not set -# CONFIG_python3-tests is not set -# CONFIG_python3-numbers is not set -# CONFIG_python3-audio is not set -# CONFIG_python3-pyvenv is not set -# CONFIG_python3-asyncio is not set -# CONFIG_python3-misc is not set -# CONFIG_python3-datetime is not set -# CONFIG_python3-compile is not set -# CONFIG_python3-mmap is not set -# CONFIG_python3-mailbox is not set -# CONFIG_python3-ctypes is not set - -# -# python3-async -# -# CONFIG_python3-async is not set -# CONFIG_python3-async-dev is not set -# CONFIG_python3-async-dbg is not set - -# -# python3-git -# -# CONFIG_python3-git is not set -# CONFIG_python3-git-dbg is not set -# CONFIG_python3-git-dev is not set - -# -# python3-gitdb -# -# CONFIG_python3-gitdb is not set -# CONFIG_python3-gitdb-dev is not set -# CONFIG_python3-gitdb-dbg is not set - -# -# python3-setuptools -# -# CONFIG_python3-setuptools is not set -# CONFIG_python3-setuptools-dev is not set -# CONFIG_python3-setuptools-dbg is not set - -# -# python3-smmap -# -# CONFIG_python3-smmap is not set -# CONFIG_python3-smmap-dbg is not set -# CONFIG_python3-smmap-dev is not set - -# -# qtbase -# -# CONFIG_qtbase is not set -# CONFIG_qtbase-tools is not set -# CONFIG_qtbase-plugins is not set -# CONFIG_qtbase-examples is not set -# CONFIG_qtbase-dbg is not set -# CONFIG_qtbase-dev is not set -# CONFIG_qtbase-mkspecs is not set - -# -# qtcharts -# -# CONFIG_qtcharts is not set -# CONFIG_qtcharts-mkspecs is not set -# CONFIG_qtcharts-dev is not set -# CONFIG_qtcharts-dbg is not set -# CONFIG_qtcharts-qmlplugins is not set -# CONFIG_qtcharts-qmldesigner is not set - -# -# qtconnectivity -# -# CONFIG_qtconnectivity is not set -# CONFIG_qtconnectivity-tools is not set -# CONFIG_qtconnectivity-mkspecs is not set -# CONFIG_qtconnectivity-dev is not set -# CONFIG_qtconnectivity-dbg is not set -# CONFIG_qtconnectivity-qmlplugins is not set - -# -# qtdeclarative -# -# CONFIG_qtdeclarative is not set -# CONFIG_qtdeclarative-dev is not set -# CONFIG_qtdeclarative-dbg is not set -# CONFIG_qtdeclarative-qmlplugins is not set -# CONFIG_qtdeclarative-tools is not set -# CONFIG_qtdeclarative-mkspecs is not set - -# -# qtimageformats -# -# CONFIG_qtimageformats is not set -# CONFIG_qtimageformats-plugins is not set -# CONFIG_qtimageformats-dbg is not set -# CONFIG_qtimageformats-dev is not set - -# -# qtlocation -# -# CONFIG_qtlocation is not set -# CONFIG_qtlocation-plugins is not set -# CONFIG_qtlocation-qmlplugins is not set -# CONFIG_qtlocation-dbg is not set -# CONFIG_qtlocation-dev is not set -# CONFIG_qtlocation-mkspecs is not set - -# -# qtmultimedia -# -# CONFIG_qtmultimedia is not set -# CONFIG_qtmultimedia-plugins is not set -# CONFIG_qtmultimedia-mkspecs is not set -# CONFIG_qtmultimedia-qmlplugins is not set -# CONFIG_qtmultimedia-dev is not set -# CONFIG_qtmultimedia-dbg is not set - -# -# qtquickcontrols -# -# CONFIG_qtquickcontrols is not set -# CONFIG_qtquickcontrols-dbg is not set -# CONFIG_qtquickcontrols-dev is not set -# CONFIG_qtquickcontrols-qmlplugins is not set -# CONFIG_qtquickcontrols-qmldesigner is not set - -# -# qtscript -# -# CONFIG_qtscript is not set -# CONFIG_qtscript-mkspecs is not set -# CONFIG_qtscript-dbg is not set -# CONFIG_qtscript-dev is not set - -# -# qtsensors -# -# CONFIG_qtsensors is not set -# CONFIG_qtsensors-dbg is not set -# CONFIG_qtsensors-mkspecs is not set -# CONFIG_qtsensors-dev is not set -# CONFIG_qtsensors-plugins is not set -# CONFIG_qtsensors-qmlplugins is not set - -# -# qtserialport -# -# CONFIG_qtserialport is not set -# CONFIG_qtserialport-mkspecs is not set -# CONFIG_qtserialport-dev is not set -# CONFIG_qtserialport-dbg is not set - -# -# qtsvg -# -# CONFIG_qtsvg is not set -# CONFIG_qtsvg-plugins is not set -# CONFIG_qtsvg-mkspecs is not set -# CONFIG_qtsvg-dbg is not set -# CONFIG_qtsvg-dev is not set - -# -# qtsystems -# -# CONFIG_qtsystems is not set -# CONFIG_qtsystems-dbg is not set -# CONFIG_qtsystems-tools is not set -# CONFIG_qtsystems-dev is not set -# CONFIG_qtsystems-qmlplugins is not set -# CONFIG_qtsystems-mkspecs is not set - -# -# qttools -# -# CONFIG_qttools is not set -# CONFIG_qttools-mkspecs is not set -# CONFIG_qttools-dbg is not set -# CONFIG_qttools-tools is not set -# CONFIG_qttools-plugins is not set -# CONFIG_qttools-dev is not set - -# -# qttranslations -# -# CONFIG_qttranslations is not set -# CONFIG_qttranslations-qthelp is not set -# CONFIG_qttranslations-assistant is not set -# CONFIG_qttranslations-qtwebsockets is not set -# CONFIG_qttranslations-qtquickcontrols2 is not set -# CONFIG_qttranslations-qtdeclarative is not set -# CONFIG_qttranslations-qtxmlpatterns is not set -# CONFIG_qttranslations-qtmultimedia is not set -# CONFIG_qttranslations-qtconnectivity is not set -# CONFIG_qttranslations-qtbase is not set -# CONFIG_qttranslations-qtserialport is not set -# CONFIG_qttranslations-linguist is not set -# CONFIG_qttranslations-dbg is not set -# CONFIG_qttranslations-qtlocation is not set -# CONFIG_qttranslations-qtscript is not set -# CONFIG_qttranslations-qtwebengine is not set -# CONFIG_qttranslations-designer is not set -# CONFIG_qttranslations-qtquickcontrols is not set -# CONFIG_qttranslations-dev is not set - -# -# qtwebchannel -# -# CONFIG_qtwebchannel is not set -# CONFIG_qtwebchannel-dev is not set -# CONFIG_qtwebchannel-dbg is not set -# CONFIG_qtwebchannel-qmlplugins is not set -# CONFIG_qtwebchannel-mkspecs is not set - -# -# qtwebkit -# -# CONFIG_qtwebkit is not set -# CONFIG_qtwebkit-qmlplugins is not set -# CONFIG_qtwebkit-dev is not set -# CONFIG_qtwebkit-dbg is not set -# CONFIG_qtwebkit-mkspecs is not set - -# -# qtwebsockets -# -# CONFIG_qtwebsockets is not set -# CONFIG_qtwebsockets-dev is not set -# CONFIG_qtwebsockets-qmlplugins is not set -# CONFIG_qtwebsockets-mkspecs is not set -# CONFIG_qtwebsockets-dbg is not set - -# -# qtxmlpatterns -# -# CONFIG_qtxmlpatterns is not set -# CONFIG_qtxmlpatterns-mkspecs is not set -# CONFIG_qtxmlpatterns-dbg is not set -# CONFIG_qtxmlpatterns-dev is not set -# CONFIG_qtxmlpatterns-tools is not set - -# -# rgb -# -# CONFIG_rgb is not set -# CONFIG_rgb-dbg is not set -# CONFIG_rgb-dev is not set - -# -# rpm -# -# CONFIG_rpm is not set -# CONFIG_rpm-build is not set -# CONFIG_rpm-dev is not set -# CONFIG_rpm-dbg is not set - -# -# rpmsg-echo-test -# -# CONFIG_rpmsg-echo-test is not set -# CONFIG_rpmsg-echo-test-dbg is not set -# CONFIG_rpmsg-echo-test-dev is not set - -# -# rpmsg-mat-mul -# -# CONFIG_rpmsg-mat-mul is not set -# CONFIG_rpmsg-mat-mul-dev is not set -# CONFIG_rpmsg-mat-mul-dbg is not set - -# -# rpmsg-proxy-app -# -# CONFIG_rpmsg-proxy-app is not set -# CONFIG_rpmsg-proxy-app-dev is not set -# CONFIG_rpmsg-proxy-app-dbg is not set - -# -# serf -# -# CONFIG_serf is not set -# CONFIG_serf-dev is not set -# CONFIG_serf-dbg is not set - -# -# sysfsutils -# -# CONFIG_sysfsutils is not set -# CONFIG_libsysfs is not set -# CONFIG_sysfsutils-dev is not set -# CONFIG_sysfsutils-dbg is not set - -# -# systemtap -# -# CONFIG_systemtap is not set -# CONFIG_systemtap-dev is not set -# CONFIG_systemtap-dbg is not set - -# -# sysvinit-inittab -# -# CONFIG_sysvinit-inittab is not set -# CONFIG_sysvinit-inittab-dbg is not set -# CONFIG_sysvinit-inittab-dev is not set - -# -# tbb -# -# CONFIG_tbb is not set -# CONFIG_tbb-dev is not set -# CONFIG_tbb-dbg is not set - -# -# tcf-agent -# -CONFIG_tcf-agent=y -# CONFIG_tcf-agent-dbg is not set -# CONFIG_tcf-agent-dev is not set - -# -# tiff -# -# CONFIG_tiff is not set -# CONFIG_tiff-dev is not set -# CONFIG_tiffxx is not set -# CONFIG_tiff-dbg is not set -# CONFIG_tiff-utils is not set - -# -# util-macros -# -# CONFIG_util-macros is not set -# CONFIG_util-macros-dbg is not set -# CONFIG_util-macros-dev is not set - -# -# v4l-utils -# -# CONFIG_v4l-utils is not set -# CONFIG_libv4l is not set -# CONFIG_ir-keytable is not set -# CONFIG_v4l-utils-dev is not set -# CONFIG_media-ctl is not set -# CONFIG_rc-keymaps is not set -# CONFIG_v4l-utils-dbg is not set -# CONFIG_libv4l-dev is not set - -# -# valgrind -# -# CONFIG_valgrind is not set -# CONFIG_valgrind-dbg is not set -# CONFIG_valgrind-dev is not set - -# -# vte -# -# CONFIG_vte is not set -# CONFIG_libvte is not set -# CONFIG_vte-dbg is not set -# CONFIG_vte-dev is not set - -# -# watchdog -# -# CONFIG_watchdog is not set -# CONFIG_watchdog-dbg is not set -# CONFIG_watchdog-keepalive is not set -# CONFIG_watchdog-dev is not set - -# -# watchdog-config -# -# CONFIG_watchdog-config is not set -# CONFIG_watchdog-config-dbg is not set -# CONFIG_watchdog-config-dev is not set - -# -# webkitgtk -# -# CONFIG_webkitgtk is not set -# CONFIG_webkitgtk-dbg is not set -# CONFIG_webkitgtk-dev is not set - -# -# x11perf -# -# CONFIG_x11perf is not set -# CONFIG_x11perf-dbg is not set -# CONFIG_x11perf-dev is not set - -# -# x264 -# -# CONFIG_x264 is not set -# CONFIG_x264-dbg is not set -# CONFIG_x264-dev is not set -# CONFIG_x264-bin is not set - -# -# xauth -# -# CONFIG_xauth is not set -# CONFIG_xauth-dbg is not set -# CONFIG_xauth-dev is not set - -# -# xcb-util-image -# -# CONFIG_xcb-util-image is not set -# CONFIG_xcb-util-image-dev is not set -# CONFIG_xcb-util-image-dbg is not set - -# -# xcb-util-keysyms -# -# CONFIG_xcb-util-keysyms is not set -# CONFIG_xcb-util-keysyms-dev is not set -# CONFIG_xcb-util-keysyms-dbg is not set - -# -# xcb-util-renderutil -# -# CONFIG_xcb-util-renderutil is not set -# CONFIG_xcb-util-renderutil-dbg is not set -# CONFIG_xcb-util-renderutil-dev is not set - -# -# xcb-util-wm -# -# CONFIG_xcb-util-wm is not set -# CONFIG_xcb-util-wm-dbg is not set -# CONFIG_xcb-util-wm-dev is not set - -# -# xdg-utils -# -# CONFIG_xdg-utils is not set -# CONFIG_xdg-utils-dbg is not set -# CONFIG_xdg-utils-dev is not set - -# -# xdpyinfo -# -# CONFIG_xdpyinfo is not set -# CONFIG_xdpyinfo-dev is not set -# CONFIG_xdpyinfo-dbg is not set - -# -# xf86-input-evdev -# -# CONFIG_xf86-input-evdev is not set -# CONFIG_xf86-input-evdev-dbg is not set -# CONFIG_xf86-input-evdev-dev is not set - -# -# xf86-input-keyboard -# -# CONFIG_xf86-input-keyboard is not set -# CONFIG_xf86-input-keyboard-dev is not set -# CONFIG_xf86-input-keyboard-dbg is not set - -# -# xf86-input-mouse -# -# CONFIG_xf86-input-mouse is not set -# CONFIG_xf86-input-mouse-dbg is not set -# CONFIG_xf86-input-mouse-dev is not set - -# -# xf86-video-fbdev -# -# CONFIG_xf86-video-fbdev is not set -# CONFIG_xf86-video-fbdev-dbg is not set -# CONFIG_xf86-video-fbdev-dev is not set - -# -# xhost -# -# CONFIG_xhost is not set -# CONFIG_xhost-dbg is not set -# CONFIG_xhost-dev is not set - -# -# xinetd -# -# CONFIG_xinetd is not set -# CONFIG_xinetd-dbg is not set -# CONFIG_xinetd-dev is not set - -# -# xinit -# -# CONFIG_xinit is not set -# CONFIG_xinit-dev is not set -# CONFIG_xinit-dbg is not set - -# -# xinput -# -# CONFIG_xinput is not set -# CONFIG_xinput-dev is not set -# CONFIG_xinput-dbg is not set - -# -# xinput-calibrator -# -# CONFIG_xinput-calibrator is not set -# CONFIG_xinput-calibrator-dbg is not set -# CONFIG_xinput-calibrator-dev is not set - -# -# xkbcomp -# -# CONFIG_xkbcomp is not set -# CONFIG_xkbcomp-dev is not set -# CONFIG_xkbcomp-dbg is not set - -# -# xmodmap -# -# CONFIG_xmodmap is not set -# CONFIG_xmodmap-dbg is not set -# CONFIG_xmodmap-dev is not set - -# -# xprop -# -# CONFIG_xprop is not set -# CONFIG_xprop-dbg is not set -# CONFIG_xprop-dev is not set - -# -# xrandr -# -# CONFIG_xrandr is not set -# CONFIG_xrandr-dbg is not set -# CONFIG_xrandr-dev is not set - -# -# xserver-common -# -# CONFIG_xserver-common is not set -# CONFIG_xserver-common-dev is not set -# CONFIG_xserver-common-dbg is not set - -# -# xset -# -# CONFIG_xset is not set -# CONFIG_xset-dbg is not set -# CONFIG_xset-dev is not set - -# -# xtrans -# -# CONFIG_xtrans-dev is not set -# CONFIG_xtrans-dbg is not set - -# -# xwininfo -# -# CONFIG_xwininfo is not set -# CONFIG_xwininfo-dev is not set -# CONFIG_xwininfo-dbg is not set - -# -# yavta -# -# CONFIG_yavta is not set -# CONFIG_yavta-dbg is not set -# CONFIG_yavta-dev is not set - -# -# multimedia -# - -# -# alsa-plugins -# -# CONFIG_alsa-plugins is not set -# CONFIG_alsa-plugins-dev is not set -# CONFIG_alsa-plugins-dbg is not set -# CONFIG_alsa-plugins-pulseaudio-conf is not set - -# -# gstreamer1.0 -# -# CONFIG_gstreamer1.0 is not set -# CONFIG_gstreamer1.0-dev is not set -# CONFIG_gstreamer1.0-dbg is not set - -# -# net -# - -# -# bridge-utils -# -CONFIG_bridge-utils=y -# CONFIG_bridge-utils-dbg is not set -# CONFIG_bridge-utils-dev is not set - -# -# net-snmp -# -# CONFIG_net-snmp is not set -# CONFIG_net-snmp-server-snmptrapd is not set -# CONFIG_net-snmp-libs is not set -# CONFIG_net-snmp-dev is not set -# CONFIG_net-snmp-client is not set -# CONFIG_net-snmp-mibs is not set -# CONFIG_net-snmp-dbg is not set -# CONFIG_net-snmp-server-snmpd is not set -# CONFIG_net-snmp-server is not set - -# -# netcat -# -# CONFIG_netcat is not set -# CONFIG_netcat-dbg is not set -# CONFIG_netcat-dev is not set - -# -# tcpdump -# -# CONFIG_tcpdump is not set -# CONFIG_tcpdump-dbg is not set -# CONFIG_tcpdump-dev is not set - -# -# network -# - -# -# avahi -# -# CONFIG_avahi-dbg is not set -# CONFIG_libavahi-glib is not set -# CONFIG_libavahi-client is not set -# CONFIG_libavahi-core is not set -# CONFIG_avahi-dev is not set -# CONFIG_avahi-dnsconfd is not set -# CONFIG_avahi-autoipd is not set -# CONFIG_avahi-utils is not set -# CONFIG_libavahi-common is not set -# CONFIG_avahi-daemon is not set -# CONFIG_libavahi-gobject is not set - -# -# mobile-broadband-provider-info -# -# CONFIG_mobile-broadband-provider-info is not set -# CONFIG_mobile-broadband-provider-info-dbg is not set -# CONFIG_mobile-broadband-provider-info-dev is not set - -# -# wpa-supplicant -# -# CONFIG_wpa-supplicant is not set -# CONFIG_wpa-supplicant-passphrase is not set -# CONFIG_wpa-supplicant-cli is not set -# CONFIG_wpa-supplicant-dev is not set -# CONFIG_wpa-supplicant-dbg is not set - -# -# ntp -# -# CONFIG_ntp is not set -# CONFIG_ntp-dev is not set -# CONFIG_ntp-dbg is not set - -# -# optional -# - -# -# libatomic-ops -# -# CONFIG_libatomic-ops is not set -# CONFIG_libatomic-ops-dbg is not set -# CONFIG_libatomic-ops-dev is not set - -# -# mtools -# -# CONFIG_mtools is not set -# CONFIG_mtools-dev is not set -# CONFIG_mtools-dbg is not set - -# -# utils -# - -# -# dosfstools -# -# CONFIG_dosfstools is not set -# CONFIG_dosfstools-dev is not set -# CONFIG_dosfstools-dbg is not set - -# -# patch -# -# CONFIG_patch is not set -# CONFIG_patch-dev is not set -# CONFIG_patch-dbg is not set - -# -# resize-part -# -# CONFIG_resize-part is not set -# CONFIG_resize-part-dbg is not set -# CONFIG_resize-part-dev is not set - -# -# u-boot-tools -# -CONFIG_u-boot-tools=y -# CONFIG_u-boot-tools-dbg is not set -# CONFIG_u-boot-tools-dev is not set - -# -# x11 -# - -# -# base -# - -# -# libdrm -# -# CONFIG_libdrm is not set -# CONFIG_libdrm-omap is not set -# CONFIG_libdrm-amdgpu is not set -# CONFIG_libdrm-dev is not set -# CONFIG_libdrm-dbg is not set -# CONFIG_libdrm-drivers is not set -# CONFIG_libdrm-nouveau is not set -# CONFIG_libdrm-tests is not set -# CONFIG_libdrm-freedreno is not set -# CONFIG_libdrm-radeon is not set -# CONFIG_libdrm-kms is not set - -# -# xcursor-transparent-theme -# -# CONFIG_xcursor-transparent-theme is not set -# CONFIG_xcursor-transparent-theme-dev is not set -# CONFIG_xcursor-transparent-theme-dbg is not set - -# -# xserver-xf86-config -# -# CONFIG_xserver-xf86-config is not set -# CONFIG_xserver-xf86-config-dbg is not set -# CONFIG_xserver-xf86-config-dev is not set - -# -# xserver-xorg -# -# CONFIG_xserver-xorg is not set -# CONFIG_xserver-xorg-extension-record is not set -# CONFIG_xserver-xorg-dev is not set -# CONFIG_xserver-xorg-extension-glx is not set -# CONFIG_xserver-xorg-extension-dbe is not set -# CONFIG_xserver-xorg-utils is not set -# CONFIG_xserver-xorg-module-libint10 is not set -# CONFIG_xserver-xorg-extension-dri2 is not set -# CONFIG_xserver-xorg-dbg is not set -# CONFIG_xf86-video-modesetting is not set -# CONFIG_xserver-xorg-module-exa is not set -# CONFIG_xserver-xorg-extension-extmod is not set -# CONFIG_xserver-xorg-extension-dri is not set -# CONFIG_xserver-xorg-xvfb is not set -# CONFIG_xserver-xorg-module-libwfb is not set - -# -# builder -# -# CONFIG_builder is not set -# CONFIG_builder-dev is not set -# CONFIG_builder-dbg is not set - -# -# fonts -# - -# -# liberation-fonts -# -# CONFIG_liberation-fonts is not set - -# -# glew -# -# CONFIG_glew is not set -# CONFIG_glew-dbg is not set -# CONFIG_glew-bin is not set -# CONFIG_glew-dev is not set - -# -# gnome -# - -# -# adwaita-icon-theme -# -# CONFIG_adwaita-icon-theme is not set -# CONFIG_adwaita-icon-theme-symbolic is not set -# CONFIG_adwaita-icon-theme-hires is not set -# CONFIG_adwaita-icon-theme-symbolic-hires is not set -# CONFIG_adwaita-icon-theme-cursors is not set - -# -# gconf -# -# CONFIG_gconf is not set -# CONFIG_gconf-dev is not set -# CONFIG_gconf-dbg is not set - -# -# gnome-common -# -# CONFIG_gnome-common is not set -# CONFIG_gnome-common-dbg is not set -# CONFIG_gnome-common-dev is not set - -# -# gnome-desktop3 -# -# CONFIG_gnome-desktop3 is not set -# CONFIG_gnome-desktop3-dbg is not set -# CONFIG_gnome-desktop3-dev is not set -# CONFIG_libgnome-desktop3 is not set - -# -# gnome-themes-standard -# -# CONFIG_gnome-theme-adwaita is not set - -# -# libsoup-2.4 -# -# CONFIG_libsoup-2.4 is not set -# CONFIG_libsoup-2.4-dev is not set -# CONFIG_libsoup-2.4-dbg is not set - -# -# libglu -# -# CONFIG_libglu is not set -# CONFIG_libglu-dbg is not set -# CONFIG_libglu-dev is not set - -# -# libs -# - -# -# atk -# -# CONFIG_atk is not set -# CONFIG_atk-dbg is not set -# CONFIG_atk-dev is not set - -# -# libfm -# -# CONFIG_libfm is not set -# CONFIG_libfm-mime is not set -# CONFIG_libfm-dev is not set -# CONFIG_libfm-dbg is not set - -# -# libfm-extra -# -# CONFIG_libfm-extra is not set -# CONFIG_libfm-extra-dev is not set -# CONFIG_libfm-extra-dbg is not set - -# -# libmatchbox -# -# CONFIG_libmatchbox is not set -# CONFIG_libmatchbox-dev is not set -# CONFIG_libmatchbox-dbg is not set - -# -# libpthread-stubs -# -# CONFIG_libpthread-stubs-dev is not set -# CONFIG_libpthread-stubs-dbg is not set - -# -# libwnck3 -# -# CONFIG_libwnck3 is not set -# CONFIG_libwnck3-dbg is not set -# CONFIG_libwnck3-dev is not set - -# -# libxcb -# -# CONFIG_libxcb is not set -# CONFIG_libxcb-dev is not set -# CONFIG_libxcb-dbg is not set - -# -# menu-cache -# -# CONFIG_menu-cache is not set -# CONFIG_menu-cache-dev is not set -# CONFIG_menu-cache-dbg is not set - -# -# xcb-proto -# -# CONFIG_xcb-proto-dev is not set -# CONFIG_python-xcbgen is not set -# CONFIG_xcb-proto-dbg is not set - -# -# xcb-util -# -# CONFIG_xcb-util is not set -# CONFIG_xcb-util-dev is not set -# CONFIG_xcb-util-dbg is not set - -# -# xkeyboard-config -# -# CONFIG_xkeyboard-config is not set -# CONFIG_xkeyboard-config-dbg is not set -# CONFIG_xkeyboard-config-dev is not set - -# -# matchbox-keyboard -# -# CONFIG_matchbox-keyboard is not set -# CONFIG_matchbox-keyboard-dbg is not set -# CONFIG_matchbox-keyboard-applet is not set -# CONFIG_matchbox-keyboard-dev is not set -# CONFIG_matchbox-keyboard-im is not set - -# -# matchbox-session -# -# CONFIG_matchbox-session is not set -# CONFIG_matchbox-session-dev is not set -# CONFIG_matchbox-session-dbg is not set - -# -# matchbox-session-sato -# -# CONFIG_matchbox-session-sato is not set -# CONFIG_matchbox-session-sato-dev is not set -# CONFIG_matchbox-session-sato-dbg is not set - -# -# mesa -# -# CONFIG_mesa is not set -# CONFIG_libgles2-mesa is not set -# CONFIG_libgbm is not set -# CONFIG_libegl-mesa is not set -# CONFIG_mesa-dbg is not set -# CONFIG_libgles1-mesa is not set -# CONFIG_libgl-mesa-dev is not set -# CONFIG_libegl-mesa-dev is not set -# CONFIG_mesa-megadriver is not set -# CONFIG_libgles2-mesa-dev is not set -# CONFIG_libgles1-mesa-dev is not set -# CONFIG_libglapi-dev is not set -# CONFIG_mesa-dev is not set -# CONFIG_libglapi is not set -# CONFIG_libgbm-dev is not set -# CONFIG_libgl-mesa is not set -# CONFIG_libgles3-mesa-dev is not set - -# -# mesa-demos -# -# CONFIG_mesa-demos is not set -# CONFIG_mesa-demos-dev is not set -# CONFIG_mesa-demos-dbg is not set - -# -# mini-x-session -# -# CONFIG_mini-x-session is not set -# CONFIG_mini-x-session-dbg is not set -# CONFIG_mini-x-session-dev is not set - -# -# pcmanfm -# -# CONFIG_pcmanfm is not set -# CONFIG_pcmanfm-dbg is not set -# CONFIG_pcmanfm-dev is not set - -# -# settings-daemon -# -# CONFIG_settings-daemon is not set -# CONFIG_settings-daemon-dev is not set -# CONFIG_settings-daemon-dbg is not set - -# -# utils -# - -# -# libcroco -# -# CONFIG_libcroco is not set -# CONFIG_libcroco-dbg is not set -# CONFIG_libcroco-dev is not set - -# -# librsvg -# -# CONFIG_librsvg is not set -# CONFIG_librsvg-gtk is not set -# CONFIG_librsvg-dbg is not set -# CONFIG_librsvg-dev is not set -# CONFIG_rsvg is not set - -# -# matchbox-terminal -# -# CONFIG_matchbox-terminal is not set -# CONFIG_matchbox-terminal-dbg is not set -# CONFIG_matchbox-terminal-dev is not set - -# -# xrestop -# -# CONFIG_xrestop is not set -# CONFIG_xrestop-dev is not set -# CONFIG_xrestop-dbg is not set - -# -# wm -# - -# -# libfakekey -# -# CONFIG_libfakekey is not set -# CONFIG_libfakekey-dev is not set -# CONFIG_libfakekey-dbg is not set - -# -# matchbox-desktop -# -# CONFIG_matchbox-desktop is not set -# CONFIG_matchbox-desktop-dev is not set -# CONFIG_matchbox-desktop-dbg is not set - -# -# matchbox-theme-sato -# -# CONFIG_matchbox-theme-sato is not set -# CONFIG_matchbox-theme-sato-dev is not set -# CONFIG_matchbox-theme-sato-dbg is not set - -# -# matchbox-wm -# -# CONFIG_matchbox-wm is not set -# CONFIG_matchbox-wm-dbg is not set -# CONFIG_matchbox-wm-dev is not set - -# -# xserver-nodm-init -# -# CONFIG_xserver-nodm-init is not set -# CONFIG_xserver-nodm-init-dbg is not set -# CONFIG_xserver-nodm-init-dev is not set - -# -# Petalinux Package Groups -# - -# -# packagegroup-petalinux -# -# CONFIG_packagegroup-petalinux is not set -# CONFIG_packagegroup-petalinux-dev is not set -# CONFIG_packagegroup-petalinux-dbg is not set - -# -# packagegroup-petalinux-audio -# -# CONFIG_packagegroup-petalinux-audio is not set -# CONFIG_packagegroup-petalinux-audio-dbg is not set -# CONFIG_packagegroup-petalinux-audio-dev is not set - -# -# packagegroup-petalinux-display-debug -# -# CONFIG_packagegroup-petalinux-display-debug is not set -# CONFIG_packagegroup-petalinux-display-debug-dbg is not set -# CONFIG_packagegroup-petalinux-display-debug-dev is not set - -# -# packagegroup-petalinux-lmsensors -# -# CONFIG_packagegroup-petalinux-lmsensors is not set -# CONFIG_packagegroup-petalinux-lmsensors-dbg is not set -# CONFIG_packagegroup-petalinux-lmsensors-dev is not set - -# -# packagegroup-petalinux-matchbox -# -# CONFIG_packagegroup-petalinux-matchbox is not set -# CONFIG_packagegroup-petalinux-matchbox-dbg is not set -# CONFIG_packagegroup-petalinux-matchbox-dev is not set - -# -# packagegroup-petalinux-networking-debug -# -# CONFIG_packagegroup-petalinux-networking-debug is not set -# CONFIG_packagegroup-petalinux-networking-debug-dbg is not set -# CONFIG_packagegroup-petalinux-networking-debug-dev is not set - -# -# packagegroup-petalinux-networking-stack -# -# CONFIG_packagegroup-petalinux-networking-stack is not set -# CONFIG_packagegroup-petalinux-networking-stack-dbg is not set -# CONFIG_packagegroup-petalinux-networking-stack-dev is not set - -# -# packagegroup-petalinux-openamp -# -# CONFIG_packagegroup-petalinux-openamp is not set -# CONFIG_packagegroup-petalinux-openamp-dbg is not set -# CONFIG_packagegroup-petalinux-openamp-dev is not set - -# -# packagegroup-petalinux-opencv -# -# CONFIG_packagegroup-petalinux-opencv is not set -# CONFIG_packagegroup-petalinux-opencv-dbg is not set -# CONFIG_packagegroup-petalinux-opencv-dev is not set - -# -# packagegroup-petalinux-python-modules -# -# CONFIG_packagegroup-petalinux-python-modules is not set -# CONFIG_packagegroup-petalinux-python-modules-dbg is not set -# CONFIG_packagegroup-petalinux-python-modules-dev is not set - -# -# packagegroup-petalinux-qt -# -# CONFIG_packagegroup-petalinux-qt is not set -# CONFIG_packagegroup-petalinux-qt-dbg is not set -# CONFIG_packagegroup-petalinux-qt-dev is not set -# CONFIG_imageclass-populate-sdk-qt5 is not set - -# -# packagegroup-petalinux-qt-extended -# -# CONFIG_packagegroup-petalinux-qt-extended is not set -# CONFIG_packagegroup-petalinux-qt-extended-dbg is not set -# CONFIG_packagegroup-petalinux-qt-extended-dev is not set - -# -# packagegroup-petalinux-self-hosted -# -# CONFIG_packagegroup-petalinux-self-hosted is not set -# CONFIG_packagegroup-petalinux-self-hosted-dbg is not set -# CONFIG_packagegroup-petalinux-self-hosted-dev is not set - -# -# packagegroup-petalinux-utils -# -# CONFIG_packagegroup-petalinux-utils is not set -# CONFIG_packagegroup-petalinux-utils-dbg is not set -# CONFIG_packagegroup-petalinux-utils-dev is not set - -# -# packagegroup-petalinux-v4lutils -# -# CONFIG_packagegroup-petalinux-v4lutils is not set -# CONFIG_packagegroup-petalinux-v4lutils-dbg is not set -# CONFIG_packagegroup-petalinux-v4lutils-dev is not set - -# -# packagegroup-petalinux-x11 -# -# CONFIG_packagegroup-petalinux-x11 is not set -# CONFIG_packagegroup-petalinux-x11-dbg is not set -# CONFIG_packagegroup-petalinux-x11-dev is not set - -# -# Image Features -# -# CONFIG_imagefeature-ssh-server-dropbear is not set -CONFIG_imagefeature-ssh-server-openssh=y -CONFIG_imagefeature-hwcodecs=y -CONFIG_imagefeature-package-management=y -CONFIG_package-feed-uris="" -CONFIG_package-feed-archs="" -# CONFIG_imagefeature-debug-tweaks is not set -# CONFIG_auto-login is not set -# CONFIG_Init-manager-systemd is not set -CONFIG_Init-manager-sysvinit=y - -# -# modules -# -CONFIG_encoder=y -CONFIG_fifo=y - -# -# user packages -# -# CONFIG_gpio-demo is not set -# CONFIG_peekpoke is not set - -# -# PetaLinux RootFS Settings -# -CONFIG_ADD_EXTRA_USERS="root:3703;petalinux:3703;" -CONFIG_ADD_USERS_TO_GROUPS="petalinux:audio,video;" -CONFIG_ADD_USERS_TO_SUDOERS="petalinux" diff --git a/source/petalinux_config/version b/source/petalinux_config/version deleted file mode 100644 index b123147..0000000 --- a/source/petalinux_config/version +++ /dev/null @@ -1 +0,0 @@ -1.1 \ No newline at end of file diff --git a/source/petalinux_devicetree/system-user.dtsi b/source/petalinux_devicetree/system-user.dtsi deleted file mode 100644 index 472acba..0000000 --- a/source/petalinux_devicetree/system-user.dtsi +++ /dev/null @@ -1,26 +0,0 @@ -/include/ "system-conf.dtsi" -/ { -}; - -/ { - usb_phy0: usb_phy@0 { - compatible = "ulpi-phy"; - reg = <0xe0002000 0x1000>; - view-port = <0x170>; - reset-gpios = <&gpio0 8 1>; - drv-vbus; - }; -}; -&usb0 { - status = "okay"; - dr_mode = "host"; - usb-phy = <&usb_phy0>; -}; -&flash0 { - compatible = "micron,w25q256"; - reg = <0x0>; - #address-cells = <1>; - #size-cells = <1>; - spi-max-frequency = <50000000>; -}; - diff --git a/source/petalinux_devicetree/version b/source/petalinux_devicetree/version deleted file mode 100644 index 9f8e9b6..0000000 --- a/source/petalinux_devicetree/version +++ /dev/null @@ -1 +0,0 @@ -1.0 \ No newline at end of file diff --git a/source/petalinux_hwdescription/README.md b/source/petalinux_hwdescription/README.md deleted file mode 100644 index 0aca4d6..0000000 --- a/source/petalinux_hwdescription/README.md +++ /dev/null @@ -1 +0,0 @@ -关于生成硬件描述文件,见[doc/hardware_description.md](../../doc/hardware_description.md) \ No newline at end of file diff --git a/source/petalinux_hwdescription/version b/source/petalinux_hwdescription/version deleted file mode 100644 index b123147..0000000 --- a/source/petalinux_hwdescription/version +++ /dev/null @@ -1 +0,0 @@ -1.1 \ No newline at end of file