我的代码片段

news/2024/7/24 11:41:25 标签: tcl

TCL片段

实现vivado的bit,crc,ltx代码备份功能

    1 运行add_tool_crc16_5.exe软件,生成CRC  
    2:备份bit,ltx,crc文件
#####################################################
#   1.5工程执行脚本 --1:  运行add_tool_crc16_5.exe软件,生成CRC   --2:备份bit,ltx,crc文件
#   这个脚本需要放在 vivado工程的impl_1或者impl_n下面才能正常识别
#####################################################
    # tclsh .\crc_copy_bit.tcl

## 工程名称 
    # 获取当前脚本的绝对路径
    set script_path [file normalize [info script]]
    # 获取当前路径
    set current_path [file dirname $script_path]
    # 使用正则表达式匹配倒数第四个斜杠之前的路径变量名
    regexp {/([^/]+)/[^/]+/[^/]+$} $current_path -> variable_name
    # 获取bit的文件路径---
        regexp {(.*)/[^/]+$} $current_path -> copy_path
    # 输出路径变量名
    # puts "rote1: $current_path"
    # puts "rote2: $variable_name"
    # puts "rote3: $copy_path"

    # 工程名
    set vivado_pro_name    $variable_name;
    puts "vivado_pro_name: $variable_name"
    # 设置工程的impl_1的文件夹路径
    set impl_1_path  $current_path;
    puts "vivado_pro_impl_1_path: $current_path"

## 运行add_tool_crc16_5.exe软件
    exec "$current_path/add_tool_crc16_5.exe" 

## 备份比特流文件
    # 获取当前时间
    set now [clock format [clock seconds] -format "bit-%Y-%m-%d %H.%M.%S"]  
    # 目标文件夹路径
    set target_folder $copy_path/bit/$now
    # 创建目标文件夹
    file mkdir $target_folder
    puts "mdir_path $target_folder"
    # 复制文件
    file copy -force "$current_path/top.ltx"            "$target_folder/top.ltx"
    file copy -force "$current_path/top.bit"            "$target_folder/top.bit"
    file copy -force "$current_path/top_bit_crc.txt"    "$target_folder/top_bit_crc.txt"

modelsim 片段

  1. tb.do 脚本会用到的一些命令
project compileall 
vsim -gui work.tb -novopt
do wave.do 
log -r */ 
radix hex
run 100ns
  1. tb里面可以读取.csv文件的函数
    1. 读取十六进制:readmemh
    2. 读取二进制:readmemb
      例子:
`timescale 1ns / 1ps
//****************************************Copyright (c)***********************************// 
//Copyright(C) 
//All rights reserved 
//----------------------------------------------------------------------------------------
// File name:           
// Last modified Date:  2023/09/11 14:06:51
// Last Version:        V1.0
// Descriptions:        
//----------------------------------------------------------------------------------------
// Created by:          jiang quan cai 
// Created date:        2023/09/11 14:06:51
// Version:             V1.0
// Descriptions:        
//
//----------------------------------------------------------------------------------------
//****************************************************************************************//

 
module tb();
    reg                                 clk                        ;
    reg                                 rst_n                      ;
    initial
    begin
        #2
                rst_n = 0   ;
                clk = 0     ;
        #10
                rst_n = 1   ;
    end                         
    parameter                           CLK_FREQ = 100             ;//Mhz               
    always # ( 1000/CLK_FREQ/2 ) clk = ~clk ;
    reg                [  15:0]         data[0:40]                 ;
    reg                [  15:0]         wave_data                  ;
    // integer i ;
    initial begin
      $readmemh("data.txt", data);
    end
   
    reg                [   5:0]         i                          ;
    always @(posedge clk)
      begin
        wave_data = data[i];
      end
    always @(posedge clk or negedge rst_n)
        begin
            if(!rst_n)
                i <= 'd0   ;
            else if(i <= 'd10 )
                i <= i + 1'b1;
            else
                i <= i  ;
        end
	```

http://www.niftyadmin.cn/n/5021991.html

相关文章

核心实验15_端口安全_ENSP

项目场景&#xff1a; 核心实验15_端口安全_ENSP 可指定该接口下最多接入几个设备&#xff08;通过mac绑定实现&#xff09;&#xff0c;人为增加设备时可设置接口自动down掉等&#xff0c;详见补充 实搭拓扑图&#xff1a; 具体操作&#xff1a; sw1: [Huawei]int g0/0/1 [H…

[答疑]想让孩子学英语的时候同时学一点状态机?

DDD领域驱动设计批评文集 “软件方法建模师”不再考查基础题 《软件方法》各章合集 大包子 2023-8-26 11:42 读了这个文章&#xff0c;有个想法请您指点。孩子学英语的时候同时学一点状态机&#xff0c;会不会对英语有帮助&#xff1f; UMLChina潘加宇 &#xff08;补充背…

FinClip 自有账户体系是怎么做的?

前不久我与售前同事聊天&#xff0c;他们反馈说很多客户在前期了解产品的时候&#xff0c;都会问这样一个问题「你们的 FinClip 支持与我们自己的用户体系打通吗&#xff1f;」 实际上这确实也是老生常谈的问题&#xff0c;随着公司规模越来越大&#xff0c;员工需要使用的产品…

综合能力 ---- 1. 通信职业道德

1. 职业道德内涵 职业义务&#xff1b;职业良心&#xff1b;职业荣誉&#xff1b;职业信誉&#xff1b;职业尊严&#xff1b;职业纪律。 2. 记忆职业和职业道德概念 职业&#xff1a;人们在社会中所从事的专门业务和对社会所承担的特定职责&#xff0c;并以此作为重要生活来…

单链表(Single Link Table)——单文件实现

一、单链表前言 上篇文章我们讲述了顺序表&#xff0c;认真学习我们会发现顺序表优缺点。 缺点1&#xff1a;头部和中部的插入删除效率都不行&#xff0c;时间和空间复杂度都为O(N); 缺点2&#xff1a;空间不够了扩容有一定的消耗(尤其是realloc的异地扩容)&#xff1b; 缺…

@Builder使用遇到的坑

文章目录 问题现象问题分析解决方式延伸思考 问题现象 问题现象大概如下面示例&#xff0c;Account对象&#xff0c;有一个type属性&#xff0c;且设置了默认值为0&#xff0c;但由于使用了Builder方式构建&#xff0c;导致默认值丢失。 Builder Data AllArgsConstructor NoA…

探索珠宝商城小程序:商家如何实现线上卖珠宝

近期&#xff0c;微信小程序的发展势头强劲&#xff0c;各行各业都在积极开发自己的小程序&#xff0c;以适应这个数字化的时代。珠宝行业也不例外&#xff0c;许多珠宝品牌都已经推出了自己的小程序&#xff0c;为用户提供了更加便捷、个性化的购物体验。因此&#xff0c;制作…

约瑟夫环(循环列表实现)

约瑟夫&#xff08;Joseph&#xff09;问题的一种描述是&#xff1a;编号为1&#xff0c;2&#xff0c;3&#xff0c;…&#xff0c;n的n个人按顺时针方向围坐一圈。每人持有一个密码&#xff08;正整数&#xff09;。一开始任选一个正整数作为报数上限值m&#xff0c;从第一个…