首页
游戏
影视
直播
广播
听书
音乐
图片
更多
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的云盘
我的搜索
我的记录
我的图片
我的图书
我的笔记
我的音乐
我的影视
我的邮件
我的游戏
Search
1
virtuoso和empyrean alps模拟仿真和混仿教程
360 阅读
2
在IC617中进行xa+vcs数模混仿
301 阅读
3
文档内容搜索哪家强? 15款文件搜索软件横向评测
264 阅读
4
科普:Memory Compiler生成的Register file和SRAM有何区别?
258 阅读
5
通俗易懂的AI知识体系图及其产业链全景图
198 阅读
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
登录
Search
标签搜索
AI
python
Docker
vcs
PyQT
STM32
cadence
linux
systemverilog
EDA
Alist
vscode
uos
package
MCU
C
QT
CXL
sed
sv
bennyhe
累计撰写
387
篇文章
累计收到
33
条评论
首页
栏目
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
页面
游戏
影视
直播
广播
听书
音乐
图片
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的云盘
我的搜索
我的记录
我的图片
我的图书
我的笔记
我的音乐
我的影视
我的邮件
我的游戏
搜索到
387
篇与
的结果
2025-07-14
FPGA设计中的门控时钟和使能时钟 (2009-06-29 11:32:54)
门控时钟Verilog示例代码:input wr_n; //写使能信号,低有效input cs_n; //片选信号,低有效input[7:0] db; //输入数据总线output db_r; //锁存输出reg db_r; //输入数据寄存器wire d_clk; //门控时钟信号assign d_clk = wr_n || cs_n; always @ (posedge d_clk) //门控时钟上升沿db_r <= db; //锁存输入数据 RTL Viewer: 组合逻辑中多用门控时钟,一般驱动门控时钟的逻辑都是只包含一个与门(或门)。如果有其它的附加逻辑,容易因竞争产生不希望的毛刺。使能时钟Verilog示例代码:input clk; //50MHz时钟信号input wr_n; //写使能信号,低有效input cs_n; //片选信号,低有效input[7:0] db; //数据总线output db_r;reg db_r; //输入数据寄存器wire en; //使能信号assign en = ~wr_n && ~cs_n;always @ (posedge clk) //全局时钟上升沿if(en) //使能锁存输入 db_r <= db; //锁存输入数据 RTL Viewer: 使能时钟这要是用于时序逻辑中,比门控时钟要来的稳定。上面只是一个举例,实际上它们实现的功能上还是有一点差别的。门控时钟一例中是能够比较准确的在wr_n的上升沿锁存数据的。而使能时钟一例中在wr_n有效期间的每个时钟周期都会锁存输入数据,最后写入结束后锁存寄存器里的数据是wr_n上升前的0-T(T=1/clk)时间内锁存的数据。因为是个例子,也就不详细说,具体情况具体分析。分享:
2025年07月14日
3 阅读
0 评论
0 点赞
2025-07-14
降低FPGA功耗的设计技巧 (2009-06-29 11:31:44)
使用这些设计技巧和ISE功能分析工具来控制功耗 新一代 FPGA的速度变得越来越快,密度变得越来越高,逻辑资源也越来越多。那么如何才能确保功耗不随这些一起增加呢?很多设计抉择可以影响系统的功耗,这些抉择包括从显见的器件选择到细小的基于使用频率的状态机值的选择等。 为了更好地理解本文将要讨论的设计技巧为什么能够节省功耗,我们先对功耗做一个简单介绍。 功耗包含两个因素:动态功耗和静态功耗。动态功耗是指对器件内的容性负载充放电所需的功耗。它很大程度上取决于频率、电压和负载。这三个变量中的每个变量均在您的某种控制之下。 动态功耗 = 电容×电压2×频率 静态功耗是指由器件中所有晶体管的泄漏电流(源极到漏极以及栅极泄漏,常常集中为静止电流)引起的功耗,以及任何其他恒定功耗需求之和。泄漏电流很大程度上取决于结温和晶体管尺寸。 恒定功耗需求包括因终接(如上拉电阻)而造成的电流泄漏。没有多少措施可以采用来影响泄漏,但恒定功耗可以得到控制。尽早考虑功耗 您在设计的早期阶段做出的功耗决定影响最大。决定采用什么元件对功耗具有重大意义,而在时钟上插入一个 BUFGMUX 则影响甚微。对功耗的考虑越早越好。恰当的元件 并不是所有元件都具有相同的静止功耗。根据普遍规则,器件工艺技术尺寸越小,泄漏功耗越大。但并不是所有工艺技术都一样。例如,对于 90 nm 技术来说,Virtex-4 器件与其他 90 nm FPGA 技术之间在静止功耗方面存在显著差异, 然而,在静止功耗随工艺技术缩小而增加的同时,动态功耗却随之减小,这是由于较小的工艺有着更低的电压和电容。考虑好哪种功耗对你的设计影响更大——待机(静止)功耗还是动态功耗。 除通用切片逻辑单元外,所有Xilinx器件都具有专门逻辑。其形式有块 RAM、18×18 乘法器、DSP48 块、SRL16s,以及其他逻辑。这不仅在于专门逻辑具有更高的性能,还在于它们具有更低的密度,因而对于相同的操作可以消耗较少的功率。评估您的器件选项时,请考虑专门逻辑的类型和数量。 选择适当的 I/O 标准也可以节省功耗。这些都是简单的决定,如选择最低的驱动强度或较低的电压标准。当系统速度要求使用高功率 I/O 标准时,计划一个缺省状态以降低功耗。有的 I/O 标准(如 GTL/+)需要使用一个上拉电阻才能正常工作。因此如果该 I/O 的缺省状态为高电平而不是低电平,就可以节省通过该终接电阻的直流功耗。对于 GTL+,将50Ω终接电阻的适当缺省状态设置为 1.5V,可使每个 I/O 节省功耗 30 mA。数据使能 当总线上的数据与寄存器相关时,经常使用片选或时钟使能逻辑来控制寄存器的使能。进一步来说,尽早对该逻辑进行“数据使能”,以阻止数据总线与时钟使能寄存器组合逻辑之间不必要的转换,如图 1 所示。红色波形表示原设计;绿色波形表示修改后的设计。http://www.fpga.com.cn/application/a175.files/1.jpg 另一种选择是在电路板上而不是在芯片上进行这种“数据使能”。以尽可能减小处理器时钟周期。此概念是使用 CPLD 从处理器卸载简单任务,以便使其更长时间地处于待机模式。 让我们来看一个在状态 7 和状态 8 之间频繁进行状态转换的状态机。如果您为该状态机选择二进制编码,将意味着对于每次状态 7 和状态 8 之间的状态转换,将有四位需要改变状态,如表 1 所示。如果状态机采用格雷码而不是二进制码来设计,则这两个状态之间的转移所需的逻辑转换的数量将降至仅一位。另外,如果将状态 7 和 8 分别编码为 0010 和 0011,也可以达到同样的效果。时钟管理 在一个设计的所有吸收功耗的信号当中,时钟是罪魁祸首。虽然一个时钟可能运行在 100 MHz,但从该时钟派生出的信号却通常运行在主时钟频率的较小分量(通常为 12% ~ 15%)。此外,时钟的扇出一般也比较高——这两个因素显示,为了降低功耗,应当认真研究时钟。 如果设计的某个部分可以处于非活动状态,则可以考虑使用一个 BUFG-MUX 来禁止时钟树翻转,而不是使用时钟使能。时钟使能将阻止寄存器进行不必要的翻转,但时钟树仍然会翻转,消耗功率。不过采用时钟使能总比什么措施也没有强。 隔离时钟以使用最少数量的信号区。不使用的时钟树信号区不会翻转,从而降低该时钟网络的负载。仔细布局可以在不影响实际设计的情况下达到此目标。 对 FPGA 显然也可以使用同一概念。虽然 FPGA 不一定拥有待机模式,但使用一个 CPLD 中途栏截总线数据并有选择地将数据馈送到 FPGA 也可以省去不必要的输入转换。 CoolRunner-II CPLD 包含一种称为“数据门控”的功能,可以禁止引脚上的逻辑转换到达 CPLD 的内部逻辑。该数据门控使能可通过片上逻辑或引脚来控制。状态机设计 根据预测的下一状态条件列举状态机,并选择常态之间转换位较少的状态值。这样,您就能够尽可能减少状态机网络的转换量(频率)。确定常态转换和选择适当的状态值,是降低功耗且对设计影响较小的一种简单方法。编码形式越简单(一位有效编码或格雷码),使用的解码逻辑也会越少。 功耗估算工具 赛灵思提供了两种形式的功耗估算工具:一种叫做 Web Power Tools 的设计前工具和一种叫做 Xpower 的设计后工具。Web Power Tools 可通过 www.xilinx.com/cn/power 获得,它提供了根据逻辑利用率大概估计做出的功耗估算。利用它,您可以仅凭设计利用率估计就能获得功耗评估,而无需实际设计文件。 XPower 是一种设计后工具,用于分析实际器件利用率,并结合实际的适配后 (post-fit) 仿真数据(VCD 文件格式),给出实际功耗数据。利用 Xpower,您可以在完全不接触芯片的情况下分析设计改变对总功耗的影响。基于 Web 的功耗工具 基于 Web 的功耗估计是在设计流程的早期获得器件功耗情况的最快捷和最方便的方法。这些工具每个季度都会发布新版本,因此信息总是最新的,且不需要安装或下载,只需要拥有互联网连接和 Web 浏览器即可。您可以指定设计参数并保存和加载设计设置,免去了通过交互使用重新输入设计参数的麻烦。只要有对设计行为的估计并选定目标器件即可开始。http://www.fpga.com.cn/application/a175.files/2.jpgXpower:集成的设计专用功耗分析 Xpower 是所有 Xilinx ISE设计工具的一个免费组件,您可以利用它对您的基于设计的功耗需求进行详细得多的估计。XPower 是在映射或布局和布线后设计的基础上对器件功耗进行估计的。 对于成熟的投产的 FPGA 和 CPLD,XPower 计算出的功耗估计的平均设计批量误差 (suite error) 小于 10%。它将把器件数据与您的设计文件结合起来综合考虑,并按照您的专门设计信息给出估计器件功耗的高精度报告。 XPower直接集成在 ISE 软件中,可提供层次化的详细的功耗显示、详细的总结报告和功耗向导,即使是新用户也可轻易上手。XPower 可接受仿真的设计活动数据,并可以 GUI 模式和批处理模式运行。 XPower 将考虑设计中的每个网络和逻辑元素。ISE 设计文件提供准确的资源使用情况;XPower 交叉参考布线信息以及特性化电容数据。于是物理资源针对电容进行特性化。设计特性化将对新器件持续进行,以给出最精确的结果。Xpower 使用了网络翻转速率和输出负载。然后 XPower 计算功耗和结温,还可以显示单个网络的功耗数据。结论 对更便宜和更简单的热管理以及与前沿 FPGA 不断提高的功耗需求相匹配的电源的不断增长的需求,将低功耗设计的概念提升到一个全新的高度。赛灵思最新器件 Virtex-4 FPGA 提供了 90 nm 工艺技术的高性能,却避免了预想中静态功耗的显著增大。使用赛灵思功耗估算工具并遵循低功耗设计考虑事项,满足您的功耗目标将比以往任何时候都更加容易。
2025年07月14日
4 阅读
0 评论
0 点赞
2025-07-14
Cadence、SYnopsys、Mentor系列软件的全安装(2) (2009-05-09 19:31:49)
三、 Cadence(一)一、IC6.1.3.1的安装:将ic613的4个tar压缩包解压,在同一目录下得到4个CDROM,在运行如下命令:./iscape.sh弹出cadence的安装软件界面,按照要求输入安装包的路径,输入CDROM1的路径即可。之后,按要求输入安装目标目录,下一步后,选择需要的软件,除了64位以外的,其它都选。一段时间后,安装完成。之后就是对软件的配置,一共分5步,中间的根据说明来设置,一般选择no就可以;最后一步是配置OA格式文件的安装路径,选择默认的/home/cadence/ic613/oa_v22.04.028 即可。至此安装过程全部完成。为了能使用ic610的license,必须用ic610的license server--lmgrd来启动license。用iscape.sh来安装ic610的license server,同ic613的安装方法一样,瞬间完成,不过要安装在单独的文件夹内:/home/cadence/lmgrd 。license server must be version 10.8.5 or below , 10.8.6 from ic613 does not accept the old license !! lmgrd -v prints out the license server version。下一步是打补丁,破解。进入patch文件夹下,输入如下命令:./sfk rep -bylist flexlm.pat -dir $CADENCE_IC613_DIR_PATH -yes把ic610的license放到$CDS_ROOT下,接着写启动脚本,编辑用户家目录下的.bashrc文件,加入如下语句:alias lmlic='/home/cadence/lmgrd/tools.lnx86/bin/lmgrd -c /home/cadence/cadence610.dat'export CDS_ROOT=/home/cadenceexport IC_HOME=$CDS_ROOT/ic613export OA_HOME=$IC_HOME/oa_v22.04.028export CDS_LIC_FILE=5280@RHELexport LM_LICENSE_FILE=$CDS_ROOT/cadence610.datexport CDS_Netlisting_Mode=Analogexport PATH=$PATHhttp://www.eetop.cn/bbs/images/smilies/default/shy.gifIC_HOME/tools/binexport MOZILLA_HOME=/usr/bin/firefox保存且退出。终端输入 virtuoso& 命令可以启动Cadence Virtuoso,但不知道具体的功能还有没有问题。以后去实验。(二)IUS82把下载的IUS82USR1的三个tar包解压,得到一个CDROME1的文件夹,进入/home/cadence/InstallScape/iscape/bin目录下,运行如下命令:./iscape.sh弹出Cadence系列软件的安装工具,选择解压IUS82得到的CDROME1目录,之后看提示next,之后选择安装的目的文件夹/home/cadence/ius82/ ,然后选择要安装的软件包,一般是不选有64 bit字样的软件。点击next开始安装。安装完成后,不要进行软件的配置。在ius82目录下建立一个tools.lnx86目录的链接 toolsln -s tools.lnx86 tools接着写启动脚本,打开.bashrc文件,加入如下语句(这里就不写了,看最终的bashrc)。启动软件进行验证:nclaunch可以启动,没有任何问题。呵呵,好高兴。最终得到的 .bashrc文件内容如下:.bashrcUser specific aliases and functionsalias rm='rm -i'alias cp='cp -i'alias mv='mv -i'alias ll='ls -lsh'Source global definitionsif [ -f /etc/bashrc ]; then. /etc/bashrcfialias lmlic='/home/cadence/lmgrd/tools.lnx86/bin/lmgrd -c /home/cadence/cadence610.dat'alias lmlis='/usr/synopsys/10.9.3/linux/bin/lmgrd -c /usr/synopsys/synopsys.dat'export MGC_HOME=/home/mentor/calibre/ixl_cal_2008.1_20.15export SNPS_HOME=/usr/synopsysexport CDS_ROOT=/home/cadenceexport VCS_HOME=/home/synopsys/vcx_vA-2008.09export DC_HOME=$SNPS_HOME/syn_vB-2008.09export PT_HOME=$SNPS_HOME/pt_vB-2008.09export ICC_HOME=$SNPS_HOME/icc_vB-2008.09export ASTRO_HOME=$SNPS_HOME/astro_vZ-2007.03export IC_HOME=$CDS_ROOT/ic613export OA_HOME=$IC_HOME/oa_v22.04.028export IUS_HOME=$CDS_ROOT/ius82export CDS_LIC_FILE=5280@RHELexport LM_LICENSE_FILE=/home/mentor/modelsim/modeltech/LICENSE.TXTexport LM_LICENSE_FILE=$LM_LICENSE_FILE:/usr/synopsys/synopsys.datexport LM_LICENSE_FILE=$LM_LICENSE_FILE:/home/cadence/cadence610.datexport CDS_Netlisting_Mode=Analogexport LD_LIBRARY_PATH=$LD_LIBRARY_PATHhttp://www.eetop.cn/bbs/images/smilies/default/shy.gifIUS_HOME/tools/libexport PATH=$PATH:/home/mentor/modelsim/modeltech/linuxexport PATH=$PATHhttp://www.eetop.cn/bbs/images/smilies/default/shy.gifMGC_HOME/binhttp://www.eetop.cn/bbs/images/smilies/default/shy.gifVCS_HOME/bin:$DC_HOME/bin:$PT_HOME/binexport PATH=$PATH:$ICC_HOME/bin:$ASTRO_HOME/bin:$ASTRO_HOME/bin/IA.32export PATH=$PATH:$IC_HOME/bin:$IC_HOME/tools/dfII/bin:$IC_HOME/tools/binexport PATH=$PATH:$IUS_HOME/bin:$IUS_HOME/tools/bin:$IUS_HOME/tools/dfII/binalias dv=design_visionalias pt=primetimealias icc='icc_shell -gui'alias as=Astroexport MOZILLA_HOME=/usr/bin/firefox迄今为止,我就安装了这么多软件,都可以使用,大家可以放心。其余synopsy和cadence的软件安装方法同我讲的一样。至于license:IC610的license网上一大堆,自己找去,synopsys的license用EFA Glic0.4b制作。mentor的license网上也是一大堆,很容易找到。估计这么多软件够用了,以后顶多就再安装一个SOC Encounter 8.1。本人郑重申明,想这样的教程,绝对不做成doc文件或pdf文件以附件的形式上传赚大家的信元,那样太黑心了。而且大家也没有见过这么全的安装指导吧。不像某些人,随便一个烂安装教程就用附件来赚大家的信元。最后,对系统说一下,RHEL5.3可以用,但打开VCS的DVE时,无法使用,其他软件都可以。rhel4.7、4.6肯定可以用,这连想都不用想。其他系统,如ubuntu、slackware、mandrive、redflag应该也可以用,但估计会有一些问题,需要你自己去搞定,很麻烦,rpm包的依赖性让人头疼。deb包相对来说可以在线升级下载并安装。
2025年07月14日
4 阅读
0 评论
0 点赞
2025-07-14
Cadence、SYnopsys、Mentor系列软件的全安装 (2009-05-09 19:27:15)
软件平台:RedHat Enterprise Linux Advanced Server 5.2安装操作系统时,选择自定义主机名,定义计算机名为:RHEL安装好系统后,在/etc/X11/xorg.conf中的末尾加入如下语句并保存:Section "Extensions" Option "Composite" "Disable"EndSection硬件平台:神舟F205T,显卡ATI X1600一、Mentor Graphics:(一)Modelsim1、Modesim 6.5的安装:终端中输入:./install.linux2、出现图形化安装界面,依次选择 Agree -> 选择要安装的软件 -> 选择安装目标文件夹 -> 安装3、配置license,在windows下用modelsim6.5的破解器:双击MentorKG.exe,在同目录下产生LICENSE.TXT4、配置启动脚本,在用户主目录下,用gvim打开 .bashrc文件,加入如下两行:export LM_LICENSE_FILE=/home/mentor/modelsim/modeltech/LICENSE.TXTexport PATH=$PATH:/home/mentor/modelsim/modeltech/linux5、把windows下的LICENSE.TXT拷贝到linux下的/home/mentor/modelsim/modeltech目录中6、编辑/home/mentor/modelsim/modeltech目录下的modelsim.ini,找到VoptFlow = 1这一行,并将1改为07、启动modelsim:vsim(二)Calibre1、Calibre 2008.01.20的安装:终端中输入:install.linux2、出现图形化安装界面,依次选择 Install Products → Agree → 选择安装文件→ 选择目标文件夹 → 选择组件 → next → install 开始安装,大约3分钟完成。3、制作license,在windows下用calibre 2008可用的crack制作,第一步,得到你的网卡MAC 地址:0040D0AE9EFD第二步,在破解器所在的目录下,输入如下命令:mentorkg -h 0040D0AE9EFD -all -maxlen -1 -o license.dat第三步,用文本编辑器打开得到的license.dat文件,在开头加入如下两句话:SERVER 0040D0AE9EFD TCP:1717DAEMON mgcld $MGC_HOME/lib/mgcld(1717是端口号,可以任意填写)4、配置启动脚本,编辑用户主目录下的 .bashrc文件,加入如下几行:export MGC_HOME=/home/mentor/calibre/ixl_cal_2008.1_20.15export MGLS_LICENSE_FILE=/home/mentor/calibre/license.datexport PATH=$PATHhttp://www.eetop.cn/bbs/images/smilies/default/shy.gifMGC_HOME/bin我的情况是:没有加入“export MGLS_LICENSE_FILE=/home/mentor/calibre/license.dat”这句话,也没有为calibre专门制作license,因为modesim的license就可以启动calibre,迄今得到的 .bashrc 文件如下:export MGC_HOME=/home/mentor/calibre/ixl_cal_2008.1_20.15export MGLS_LICENSE_FILE=/home/mentor/calibre/license.datexport LM_LICENSE_FILE=/home/mentor/modelsim/modeltech/LICENSE.TXTexport PATH=$PATH:/home/mentor/modelsim/modeltech/linuxexport PATH=$PATHhttp://www.eetop.cn/bbs/images/smilies/default/shy.gifMGC_HOME/bin接着往下看,synopsys系列软件的安装二、Synopsys:(一) 安装installer V2.0,直接解压缩installer_v2.0.tar.Z 到某一目录下即可(二) 安装synopsys license管理器,即scl10.9.3或scl10.9.1d,都可以。进入解压得到的installer目录,输入如下命令:>./setup.sh ,如下图:找到scl所在的目录,一路点击 next ,其间你要选择安装目标位置,如我的是/home/synopsy/10.9.3 ,直至完成scl的安装。(三)安装VCS进入解压得到的installer目录,输入如下命令:>./setup.sh找到vcs所在的目录,一路点击 next ,其间你要选择安装目标位置,如我的是/home/liude/soft ,如下图:一路点击next ,其间选择你要安装的目标位置,如我的是:/home/synopsys/vcs-mx_vA-2008.09其间出现的dismiss等信息,你可以看也可以不看,直接点击 dismiss 按钮,直至完成。(四)安装Design Compiler , IC Compiler , PrimeTime , Astro 等,方法同安装VCS时的步骤。(五)配置license,用EFA Glic 0.4b和比较全的synopsys.src来产生license.dat ,具体产生方法见你自己下载的EFA Glic 04b压缩包里的说明,而且网上有很多的license产生教程。这里就不细说了。把得到license.dat 重新命名为synopsys.dat 放到/home/synopsy/ 下。(六)配置启动脚本,用文本编辑器编辑用户主目录下的 .bashrc 文件,加入如下内容(具体内容省略),见下文得到的bashrc文件。迄今得到的 .bashrc 文件如下:alias lmlis='/home/synopsys/10.9.3/linux/bin/lmgrd -c /home/synopsys/synopsys.dat'export MGC_HOME=/home/mentor/calibre/ixl_cal_2008.1_20.15export SNPS_HOME=/home/synopsysexport VCS_HOME=$SNPS_HOME/vcs-mx_vA-2008.09export DC_HOME=$SNPS_HOME/syn_vB-2008.09export PT_HOME=$SNPS_HOME/pts_vB-2008.06export ICC_HOME=$SNPS_HOME/icc_vB-2008.09export ASTRO_HOME=$SNPS_HOME/astro_vZ-2007.03export MGLS_LICENSE_FILE=/home/mentor/calibre/license.datexport LM_LICENSE_FILE=/home/mentor/modelsim/modeltech/LICENSE.TXTexport LM_LICENSE_FILE=$LM_LICENSE_FILE:/home/synopsys/synopsys.datexport PATH=$PATH:/home/mentor/modelsim/modeltech/linuxexport PATH=$PATHhttp://www.eetop.cn/bbs/images/smilies/default/shy.gifMGC_HOME/binexport PATH=$PATHhttp://www.eetop.cn/bbs/images/smilies/default/shy.gifVCS_HOME/binexport PATH=$PATHhttp://www.eetop.cn/bbs/images/smilies/default/shy.gifDC_HOME/binexport PATH=$PATH:$PT_HOME/binexport PATH=$PATH:$ICC_HOME/binexport PATH=$PATH:$ASTRO_HOME/bin:$ASTRO_HOME/bin/IA.32alias dv=design_visionalias pt=primetimealias icc='icc_shell -gui'alias as=Astro启动各个软件,一切OK。呵呵!!!!!!!!!!!!!大家对比一下上下两个bashrc文件,有些东西是要讲究顺序的。
2025年07月14日
3 阅读
0 评论
0 点赞
2025-07-14
cygwin使用心得 (2009-04-02 13:41:47)
1.在cygwin里访问Windows盘cd /cygdrive/ccd c:2.整合cygwin命令到Windows中假设cygwin安装在d:/develop/cygwin,则将d:/develop/cygwin/bin添加到系统变量PATH中(最好加在windows前面,这样的话,有些相同的命令的话,是先执行cygwin的命令,而不是windows命令,比如find)就可以直接在cmd.exe下面执行tar czvf xxx.tgz ./基本上所有的命令都可以用了,包括ls,more,less,find,grep等。3.使用TGZ备份将cygwin的BIN加入到PATH建一个BAT文件:@echo offd:cd d:\website\8thmanagetar czvf 8thmanage.tgz 8thmanage4.Windows使用SHELL脚本将cygwin的BIN加入到PATH在$CYGWIN的目录/var/下面建一脚本t.sh,注意,t.sh里面的路径,都是相对于$CYGWIN的,里面需要访问C盘的,请用/cygdrive/c/在Windows下执行:d:\cygwin\bin\bash d:\cygwin\var\t.sh(可以定期执行)5.同步Windows系统用户mkpasswd -l > /etc/passwdmkgroup -l > /etc/group如果有Domain的话,需要加上-d domainname6.安装系统服务cygrunsrv7.cygwing下使用rsynca.安装rsync组件b.进入cygwin,配置服务器vi /etc/rsyncd.conf...screts file=/etc/tom.ipaddr.pas配置文件,参考我写的另外一篇rsync的文章,注意:密码文件权限必须是0400chmod 0400 /etc/tom.ipaddr.pasc.启动服务端rsync --daemond.客户端同步在客户端的cygwin下面,运行rsync同步,具体命令,请参考另外一篇rsync的文章。8.cygwin下使用SSHDa.需要安装了cygrunsrc,opensshb.运行ssh-host-config -y一路回车,直到出现CYGWIN=时,输入tty ntsec,再回车,(或者,增加一系统环境变量CUGWIN=nesec tty)c.已经安装好SSHD服务到你的Windows服务中,可以直接在服务中启动,关闭。(cygrunsrc -S sshd或者net start sshd)9.中文显示vi ~/.bashrc让ls和dir命令显示中文和颜色alias ls='ls --show-control-chars --color'alias dir='dir -N --color'设置为中文环境,使提示成为中文export LANG="zh_CN.GBK"输出为中文编码export OUTPUT_CHARSET="GBK"~/.inputrc为set completion-ignore-case onset meta-flag onset output-meta onset convert-meta offcygwin.bat脚本为:@echo offset MAKE_MODE=UNIX安装可以直接到http://www.cygwin.com下载一个安装程序,setup.exe,这个程序只是一个安装程序,所有的模块将从网络下载安装。或者,你可以下载一个cygwin.iso的镜像,直接映象成光盘,再从光盘本地安装,这样会快很多,而且不用考虑断线的问题。X下的中文支持locale支持Cygwin的locale支持一直都有问题,好在X程序还可以使用XLOCALE。建议还是使用zh_CN.gbk, 不要使用zh_CN.GB2312在移植程序时需要注意不要让程序连接libcygwin.a里面的setlocale,而是采用libX11.a里面的_Xsetlocale。方法是:检查被移植程序的全部源代码,发现include就修改为define X_LOCALEinclude同时注意程序的连接库要添加-lX11.如果对于结果没有把握,可以找个Dependency Walker查看程序是否连接到了cygwin1.dll里面的setlocale,如果是,就说明有遗漏。中文字体PCF点阵字体GTK1.x 和其他一些老的X程序都是用X字体,注意必须要有编码与locale一致的字体,比如用zh_CN.gbk就必须要由GBK编码的字体,用zh_CN.GB2312就必须要有GB2312编码的字体如果使用zh_CN.GB2312,这里有一个RedOffice面带的点阵字体包可以采用ttf2bdf从TTF抽取得到bdf格式,然后再用bdf2pcf得到pcf格式的字体文件。(这里有一个Windows版本的TTF2BDF,可以将Windows TTF字体转换出BDF字体, 注意得到bdf后要手工编辑一下文件头,将编码声明修改正确)得到字体之后,放到某个目录下,执行mkfontdir生成fonts.dir,然后用xset +fp/path/to/your/fonts将字体路径加入即可(注意与fontconfig的配置不同,这里路径是不递归的,如果有的字体放在子目录里面,子目录也需要添加进去才行)。TTF字体很多新的应用程序(比如GTK2)都使用fontconfig/libxft2来显示字体,它对TTF字体的支持比较好(X以前通过freetype, xft模块也支持TTF字体,但对中日韩字体的支持不是太好,而且也在Cygwin下似乎也没有这些模块)完全可以使用Linux下的arphic字体包. 如果没有安装Linux,可以到http://packages.debian.org下载相应的包,然后用7zip解压提取出ttf文件。得到字体文件之后,放到某个目录之下,编辑/etc/fonts/local.conf,将字体路径加入:/path/to/my/ttf/fonts如果只是自己使用,可以将字体文件放到~/.fonts下,不需要修改任何配置,最多三十秒fontconfig就能够发现这些字体了。中文输入法老黄(hzhr)移植了miniChinput到Cygwin,我也移植了fcitx-1.8.5和3.0,均可以从我的网站上找到 http://www.oliwen.com/bama...一般设置了LC_CTYPE和XMODIFIERS就可以在程序中激活输入输入法了(除非这个程序没有XIM支持):LC_CTYPE=zh_CN.gbkXMODIFIERS="@im=Chinput"export LC_CTYPE XMODIFIERS对于fcitx而言,XMODIFIERS设置为什么都可以(但必须要设置),所以设置为"@im=Chinput"的话chinput和fcitx都可以正常使用VI中的 Backspace 與 Delete 按鍵異常首先確定 $TERM的設定為cygwinecho $TERM若不是,請設定為TERM = cygwinexport TERMBackspace 與 Delete這兩個鍵正常狀況下只有一個有用。可在 $HOME/.bash_profile 任選一個來使用stty erase '^H' //ctrl+v, ctrl+hstty erase '^?'------------------------Cygwin使用指南1 引言cygwin 是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。本文将对其作一介绍。2 机理cygnus 当初首先把gcc,gdb,gas等开发工具进行了改进,使他们能够生成并解释win32的目标文件。然后,他们要把这些工具移植到windows平台上去。一种方案是基于win32 api对这些工具的源代码进行大幅修改,这样做显然需要大量工作。因此,他们采取了一种不同的方法——他们写了一个共享库(就是cygwin dll),把win32 api中没有的unix风格的调用(如fork,spawn,signals,select,sockets等)封装在里面,也就是说,他们基于 win32 api写了一个unix系统库的模拟层。这样,只要把这些工具的源代码和这个共享库连接到一起,就可以使用unix主机上的交叉编译器来生成可以在 windows平台上运行的工具集。以这些移植到windows平台上的开发工具为基础,cygnus又逐步把其他的工具(几乎不需要对源代码进行修改,只需要修改他们的配置脚本)软件移植到windows上来。这样,在windows平台上运行bash和开发工具、用户工具,感觉好像在unix上工作。关于cygwin实现的更详细描述,请参考http://cygwin.com/cygwin-ug-net/highlights.html.3 安装设置cygwin3.1 安装要安装网络版的cygwin,可以到http://cygwin.com,点击"Install Cygwin Now!"。这样会先下载一个叫做setup.exe的GUI安装程序,用它能下载一个完整的cygwin。按照每一屏的指示可以方便的进行安装。3.2 环境变量开始运行bash之前,应该设置一些环境变量。cygwin提供了一个.bat文件,里面已经设置好了最重要的环境变量。通过它来启动bash是最安全的办法。这个.bat文件安装在cygwin所在的根目录下。 可以随意编辑该文件。CYGWIN变量用来针对cygwin运行时系统进行多种全局设置。开始时,可以不设置CYGWIN或者在执行bash前用类似下面的格式在dos框下把它设为ttyC:\> set CYGWIN=tty notitle globPATH 变量被cygwin应用程序作为搜索可知性文件的路径列表。当一个cygwin进程启动时,该变量被从windows格式(e.g. C:\WinNT\system32;C:\WinNT)转换成unix格式(e.g., /WinNT/system32:/WinNT)。如果想在不运行bash的时候也能够使用cygwin工具集,PATH起码应该包含x:\cygwin \bin,其中x:\cygwin 是你的系统中的cygwin目录。HOME变量用来指定主目录,推荐在执行bash前定义该变量。当 cygwin进程启动时,该变量也被从windows格式转换成unix格式,例如,作者的机器上HOME的值为C:\(dos命令set HOME就可以看到他的值,set HOME=XXX可以进行设置),在bash中用echo $HOME看,其值为/cygdrive/c.TERM变量指定终端型态。如果美对它进行设置,它将自动设为cygwin。LD_LIBRARY_PATH被cygwin函数dlopen()作为搜索.dll文件的路径列表,该变量也被从windows格式转换成unix格式。多数Cygwin应用程序不使用dlopen,因而不需要该变量。3.3 改变cygwin的最大存储容量Cygwin 程序缺省可以分配的内存不超过384 MB(program+data)。多数情况下不需要修改这个限制。然而,如果需要更多实际或虚拟内存,应该修改注册表的 HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER区段。田家一个DWORD键heap_chunk_in_mb并把它的值设为需要的内存限制,单位是十进制MB。也可以用cygwin中的regtool完成该设置。例子如下:regtool -i set /HKLM/Software/Cygnus\ Solutions/Cygwin/heap_chunk_in_mb 1024regtool -v list /HKLM/Software/Cygnus\ Solutions/Cygwin4 使用cygwin这一段讲一下cygwin和传统unix系统的不同之处。4.1 映射路径名4.1.1 引言cygwin 同时支持win32和posix风格的路径,路径分隔符可以是正斜杠也可以是反斜杠。还支持UNC路径名。(在网络中,UNC是一种确定文件位置的方法,使用这种方法用户可以不关心存储设备的物理位置,方便了用户使用。在Windows操作系统,Novell Netware和其它操作系统中,都已经使用了这种规范以取代本地命名系统。在UNC中,我们不用关心文件在什么盘(或卷)上,不用关心这个盘(或卷)所在服务器在什么地方。我们只要以下面格式就可以访问文件:\服务器名\共享名\路径\文件名共享名有时也被称为文件所在卷或存储设备的逻辑标识,但使用它的目的是让用户不必关心这些卷或存储设备所在的物理位置。)符合posix标准的操作系统(如linux)没有盘符的概念。所有的绝对路径都以一个斜杠开始,而不是盘符(如c:)。所有的文件系统都是其中的子目录。例如,两个硬盘,其中之一为根,另一个可能是在/disk2路径下。因为许多unix系统上的程序假定存在单一的posix文件系统结构,所以cygwin专门维护了一个针对win32文件系统的内部posix视图,使这些程序可以在windows下正确运行。在某些必要的情况下,cygwin会使用这种映射来进行win32和posix路径之间的转换。4.1.2 cygwin mount表cygwin 中的mount程序用来把win32盘符和网络共享路径映射到cygwin的内部posix目录树。这是与典型unix mount程序相似的概念。对于那些对unix不熟悉而具有windows背景的的人来说,mount程序和早期的dos命令join非常相似,就是把一个盘符作为其他路径的子目录。路径映射信息存放在当前用户的cygwin mount表中,这个mount table 又在windows的注册表中。这样,当该用户下一次登录进来时,这些信息又从注册表中取出。mount 表分为两种,除了每个用户特定的表,还有系统范围的mount表,每个cygwin用户的安装表都继承自系统表。系统表只能由拥有合适权限的用户(windows nt的管理员)修改。当前用户的mount表可以在注册表"HKEY_CURRENT_USER/Software/Red Hat, Inc./Cygwin/mounts v" 下看到。系统表存在HKEY_LOCAL_MACHINE下。posix 根路径/缺省指向系统分区,但是可以使用mount命令重新指向到windows文件系统中的任何路径。cygwin从win32路径生成posix路径时,总是使用mount表中最长的前缀。例如如果c:被同时安装在/c和/,cygwin将把C:/foo/bar转换成/c/foo/bar.如果不加任何参数地调用mount命令,会把Cygwin当前安装点集合全部列出。在下面的例子中,c盘是POSIX根,而d盘被映射到/d。本例中,根是一个系统范围的安装点,它对所有用户都是可见的,而/d仅对当前用户可见。c:\> mountf:\cygwin\bin on /usr/bin type system (binmode)f:\cygwin\lib on /usr/lib type system (binmode)f:\cygwin on / type system (binmode)e:\src on /usr/src type system (binmode)c: on /cygdrive/c type user (binmode,noumount)e: on /cygdrive/e type user (binmode,noumount)还可以使用mount命令增加新的安装点,用umount删除安装点。当Cygwin 不能根据已有的安装点把某个win32路径转化为posix路径时,cygwin会自动把它转化到一个处于缺省posix路径/cygdrive下的的一个安装点. 例如,如果Cygwin 访问Z:\foo,而Z盘当前不在安装表内,那么Z:\将被自动转化成/cygdrive/Z.可以给每个安装点赋予特殊的属性。自动安装的分区显示为“auto”安装。安装点还可以选择是"textmode"还是 "binmode",这个属性决定了文本文件和二进制文件是否按同样的方式处理。4.1.3 其他路径相关信息cygpath工具提供了在shell脚本中进行win32-posix路径格式转换的能力。HOME, PATH,和LD_LIBRARY_PATH环境变量会在cygwin进程启动时自动被从Win32格式转换成了POSIX格式(例如,如果存在从该win32路径到posix路径的安装,会把c:\cygwin\bin转为/bin)。
2025年07月14日
5 阅读
0 评论
0 点赞
1
...
31
32
33
...
78