把下列代码保存为.tcl或者.txt文本保存在某个路径下 打开vivado,在tcl concle中输入 “source 文件路径”,将脚本加载至工具中后, 例如读寄存器地址32'h12345678的命令为:"ReadReg 0x12345678",此时便会返回寄存器的值,而不用每次都输入繁琐的一串命令. 写命寄存器则需要输入地址和数据,例如写寄存器地址32‘h12345678的值为0x3,"WriteReg 0x12345678   0x3"即可 proc Rea…
arm裸机下读写寄存器很容易,各个寄存器和内存的地址是单一地址空间,他们是用相同的指令进行读写操作的.而在linux下就要复杂很多,因为linux支持多个体系架构的CPU.比如arm和x86就不一样,具体的差别我暂时也说不上来,这个涉及到CPU体系的设计.目前我只关心:linux为了支持多个硬件体系,在IO访问上做了自己的接口.可以通过IO内存和IO端口这两种方式进行IO访问.在LED的例子上给出这两种方式的具体实现: 1.利用IO Port的方式: #include <linux/module…
Modelsim的仿真,如果一直使用图形界面建工程,编译,仿真,一个个加入观察波形的话,未免复杂了一些,尤其是当工程较大,需要观察的信号较多时,下面贴出一些常用的tcl脚本命令和wave.do常用语法:   vsim.tcl仿真脚本: vlib compress_lib vmap compress_lib compress_lib   set verilog_file_list [ glob verilog/compress/*.v ]   foreach i $verilog_file_lis…
自己主动生成Tcl文件 Project -> Generate Tcl File for Project... 弹出例如以下对话框.设置脚本路径. 编辑引脚 使用set_location_assignment分配管脚例如以下: 第一次配制时.没有set_location_assignment语句,自已在set_global_assignment语句下一行加入就可以. 运行Tcl脚本 Tools -> Tcl Scripts... 选中刚新建的Tcl文件,点击Run执行就可以! 答疑解惑 1.…
原文 c#读写共享内存操作函数封装 c#共享内存操作相对c++共享内存操作来说原理是一样,但是c#会显得有点复杂. 现把昨天封装的读写共享内存封装的函数记录下来,一方面希望给需要这块的有点帮助,另一方面则是做个备份吧. [csharp] view plaincopy /// <summary> /// 写共享内存 /// </summary> /// <param name="structSize">需要映射的文件的字节数量</param>…
前言 TCL脚本语言在EDA工具中使用频繁,本文主要介绍使用TCL脚本文件进行引脚分配,避免手动分配以及分配出错: 流程 1.准备好你的TCL脚本文件,举个栗子(脚本文件内容): 2.在Quartus软件选择tools下的Tcl Scripts选项: 运行即可: 以上.…
通常我们使用Modelsim进行仿真,是通过图形界面点点点来进行操作,殊不知Modelsim完美支持TCL脚本语言及批处理命令do文件.简单来说就是从你修改完代码后到你重新编译把需要的信号拉出来查看,现在只需要一个动作即可完成.大大提高了工作效率,博主之前也是点点点了好久,最后发现有这么好的仿真技巧,真是相见恨晚. 下面列举一些常见的TCL脚本命令 Run do文件的一些常用命令 #打开现有工程 project open C:/Users/jayash/Desktop/sim/ImageProc…
对于modelsim进行仿真,可以通过GUI来进行仿真,当然更加快速的方法可以使用TCL脚本文件进行快速仿真. Modelsim采用TCL脚本文件仿真的具体流程如下所示:      具体的操作步骤如下: 在进行modelsim仿真之前应先在工程目录下新建一个文件夹,名称任意,这里笔者设置为sim文件. 打开modelsim,然后新建一个工程,file—new—-project,将仿真文件路径放置到sim文件中,注意,整个路径不要有中文路径,注释的文字最好是英文,下面为了说明采用中文注释. 在si…
Tcl简介(一):Tcl 语法 Tcl 语法 Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以释运行,其强大的功能和简单精妙的语法会使你感到由衷的喜悦,这片文章对 Tcl有很好的描述和说明.如果你看起来很吃力,那是因为 Tcl与一般的语言有一些不同之处,刚开始可能有一些不理解,但很快就会掌握的.请坚持一下,我能坚持写完,你至少也应该坚持读一遍吧! Tcl Overview 这篇文章里包含了几乎 Tcl 的全部.文章的作者是Tcl的缔造者John Ousterhout,对Tcl的诠释非常清…
quartus软件分配管脚的方法有两种,一是选择菜单“assignments->pins”进入管脚分配视图手动分配:第二种方法是利用tcl脚本文件自动分配.这里我来介绍第二种方法. 1.生成tcl文件,按图例顺序操作 其中Tcl Script File name 是文件路径 2 找到"set_location_assignment"字段编辑管脚. 第一次配制时,没有set_location_assignment语句,自已在set_global_assignment语句下一行添加即…
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众平台上面发布的很多推文百度搜索不到,所以以后的推文也会在这里进行转载. 图: 黑洞:卡冈都亚 <28nm工艺下,自动生成管脚排列文件,给设计加PAD,并在PAD上面打Label的流程(含Tcl脚本)> 在后端设计中编写管脚排列文件(.tdf文件)是一个非常繁琐的过程,其实只要SPEC写好,完全可以…
本文转自:自己的微信公众号<数字集成电路设计及EDA教程> 里面主要讲解数字IC前端.后端.DFT.低功耗设计以及验证等相关知识,并且讲解了其中用到的各种EDA工具的教程. 考虑到微信公众平台上面发布的很多推文百度搜索不到,所以以后的推文也会在这里进行转载. 图:  ICC中用Tcl脚本给版图中的Port/Terminal加Label的方法 在输出GDSII文件之前,为了方便后边导入Virtuoso用Calibre做LVS,最好给整个设计的输入输出端口打上Label,如果设计是模块级别的,没有…
参考链接:http://blog.csdn.net/liukang325/article/details/26601811 /dev/mem:物理内存的全镜像.可以用来访问物理内存.由于应用运行都在用户空间,使用的是虚拟内存,不能直接访问物理地址空间,通过/dev/mem文件可以用来访问系统的全部寻址空间. /dev/kmem:kernel看到的虚拟内存的全镜像.可以用来访问kernel的内容. 在开启MMU之前,你可以直接用物理地址访问.在开启MMU之后,你需要先将物理地址映射为虚拟地址,然后…
可以通过操作/dev/mem设备文件,以及mmap函数,将寄存器的地址映射到用户空间,直接在应用层对寄存器进行操作,示例如下: #include <stdio.h> #include <stdlib.h> #include <time.h> #include <unistd.h> #include <fcntl.h> #include <unistd.h> #include <sys/mman.h> #define AUD…
writel() 往内存映射的 I/O 空间上写数据,wirtel() I/O 上写入 32 位数据 (4字节). 原型: #include <asm/io.h> void writel (unsigned char data , unsigned short addr ) readl() 从内存映射的 I/O 空间读取数据,readl 从 I/O 读取 32 位数据 ( 4 字节 ). 原型: #include <asm/io.h> unsigned char readl (un…
#设置Chassis的基本參数,包含IP地址.port的数量等等 set chassisAddr 10.132.238.190 set islot 1 set portList {11 12} ;#端口的排列顺序是port1, port2 if { [catch {     #载入STC API Lib        cd ../Source     #载入HLAPI Lib     source ./CSTC.tcl     SetLogOption -Debug Enable       …
需求: 原list输出格式 0x00 0x50 0x01 0x03 0x04 0x02 0x21 0x57 0x01 0x00 0x05 0x0B 0x03 0x13 0x00 0x01 要求list输出格式为 list21 is : 04030150 list22 is : 01572102 list23 is : 030b0500 list24 is : 00010013 list20 is : 04030150 01572102 030b0500 00010013 思路 1. 去除0x方式…
上一篇说tcl中文乱码是因为我写了个bat调用该脚本,但是脚本中的中文路径是乱码.今天刚好有时间进行解决下: 首先看看调用代码 "./bin/base-tcl8.6-thread-win32-x86_64.exe" 123.tcl pause 上面就是所用bat文件,是调用tcl安装好之后的执行文件把脚本传入来实现脚本的运行. 但是为什么是乱码,把上面exe的路径直接写入安装目录下的exe,是没有问题,但是换成另外目录然后拷贝安装环境的bin目录来执行就是乱码.对比下两者的文件列表完全…
我那个媳妇啊,典型的只管照不管 理,32G的卡竟然被弄满了. 费好大劲好不容易整理到电脑上,可是都是数字名字,看着都头疼,索性整理下. 首先安装tcl编译环境tcl86,度娘搞的,然后开动: proc call_Deal {paths str} { cd $paths set strList "" catch {set strList [glob *.*]} set strreg "$str\(\[0-9\]\[0-9\]\)" foreach strLine $s…
tcl,全名tool command language,是一种通用的工具语言. 1)每个命令之间,通过换行符或者分号隔开: 2)tcl的每个命令包含一个或者多个单词,默认第一个单词表示命令,第二个单词表示参数, 单词之间必须同空格或者tab键隔开: 3)tcl解释器的执行过程,分析阶段,对单词的拆分,同时进行必要的置换:    执行阶段,检查命令有效性,启动c/c++解释器,传递之后的单词作为参数,执行命令: 4)tcl中的注释,用###来表示,一个就可以.必须在一行的开头 5)同一行命令太长,…
python中调用tcl是通过加载TkInter来实现的. from Tkinter import Tcl tcl = Tcl() tcl.eval('source tu.tcl') tcl.eval('writelog hihi') 原文出自:http://blog.csdn.net/newyf_cun/article/details/8004170…
最近在开发电商平台的子系统--储值卡系统,系统核心业务涉及到金额消费以及库存控制,因此为了解决建立在内存上高并发情况下的事务控制,使用了spring封装的RedisTemplate执行lua脚本进行原子性操作,确保金额消费,库存按顺序处理,解决资源争抢. 1.使用lua脚本 Redis 使用单个 Lua 解释器去运行所有脚本,并且, Redis 也保证脚本会以原子性(atomic)的方式执行:当某个脚本正在运行的时候,不会有其他脚本或 Redis 命令被执行.这和使用 MULTI / EXEC …
实验指导书及代码包下载: http://pan.baidu.com/s/1pJZDz0v iCore3 购买链接: https://item.taobao.com/item.htm?id=524229438677…
代码包下载: 链接:http://pan.baidu.com/s/1o8G62im 密码:j0iq…
方法一:Import Assignments步骤1: 使用记事本或类似软件新建一个txt文件(或csv文件),按如下格式编写管脚分配内容(不同的开发版,其内容也不同,本文以我使用的DIY_DE2开发板为范例).[这种方式格式最为简单] 注意:To和Location两个关键字中间有一个半角逗号.    图1 pin.txt 步骤2: 在QII软件中,选择“Assignments -> Import Assignments”.如图所示,导入xxx.txt或者xxx.csv文件即可 图2 导入pin.…
set ns [new Simulator] set tracef [open example1.tr w]$ns trace-all $tracefset namtf [open example1.nam w]$ns namtrace-all $namtf proc finish {} {//括号之间要有空格 global ns tracef namtf $ns flush-trace close $tracef close $namtf exec nam example1.nam& exit…
该芯片支持I2C和SPI读写寄存器,本人用的是SPI1接口. 以下是对手册中SPI接口读写寄存器相关内容的翻译(英文版可以看手册的94页~) 在SPI控制模式下,TLV320AIC3268使用SCL_SSZ作为片选信号 ,I2C_ADDR_SCLK 作为 SCLK,MISO_GPO1 作为 MISO, SDA_MOSI 作为 MOSI; CPOL = 0 CPHA = 1. SPI接口支持主从设备间的全双工.同步.串行通信.SPI主设备产生同步时钟(SCLK)并且启动传输.字节从主机出发沿着MO…
1.使用NS2进行模拟,就不可避免的会接触TCL/OTCL和C/C++.两者配合使用.一般设置场景啊,业务流啊,都使用TCL/OTCL来编写脚 本.要进行路由实验模拟的话,同一类的实验,这些脚本基本上是差不多的.所以其实没有必要在这种脚本语言上花费太多的时间.最主要的就是用C/C++来实 现自己的路由算法,这才是考验你基本功的地方. 2.算法出来之后,就开始模拟了.要使得自己写的新路由算法能在NS2上跑,就需 要修改一些文件,使得NS2能够认识你的路由算法.主要包括NS2_HOME/ns-2.3…
一.写配置寄存器步骤及函数封装 写配置寄存器 1.把CSB拉低至低电平: 2.发送WRCFG命令(0x00 0x01)及其PEC(0x3D 0x6E): 3.发送配置寄存器的CFGR0字节,然后继续发送CFGR1....CFGR5; 4.发送CFGR0....CFGR5的PEC校验码: 5.把CSB拉至高电平,数据在CSB的上升沿上被锁定至所有的器件中. 配置寄存器封装函数 void LTC6804_wrcfg(Uint8 total_ic,Uint8 config[6]){ const Uin…
Test access port (TAP) JTAG defines a TAP (Test access port). The TAP is a general-purpose port that can provide access to many test support functions built into a component. It is composed as a minimum of the three input connections (TDI, TCK, TMS)…