<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>mahudu@javaeye</title>
    <description></description>
    <link>http://mahudu.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
          <item>
        <title>verilog基础</title>
        <author>mahudu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://mahudu.javaeye.com">mahudu</a>&nbsp;
                    链接：<a href="http://mahudu.javaeye.com/blog/233045" style="color:red;">http://mahudu.javaeye.com/blog/233045</a>&nbsp;
          发表时间: 2008年08月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>1，值集合：<br />
Verilog HDL中有下列四种基本的值：<br />
1）0：逻辑0或&ldquo;假&rdquo;<br />
2）1：逻辑1或&ldquo;真&rdquo;<br />
3）x：未知<br />
4）z：高阻<br />
值的解释内置于Verilog语言本身中，如：一个为z的值总是意味着高阻，一个为0的值总是指逻辑0。<br />
x值和z值不区分大小写。<br />
<br />
2，三类字面常量<br />
1）整形<br />
&nbsp;&nbsp;&nbsp; 整形字面常量有两种表述形式：<br />
&nbsp;&nbsp;&nbsp; （1）简单的十进制：如18，-10<br />
&nbsp;&nbsp;&nbsp; （2）基数表示法：格式：[size]'base value，其中size为常量的位宽，base为o或O（8进制），b或B（二进制），d或D（十进制），h或H（十六进制），value为基于base的值的序列。如：<br />
&nbsp;&nbsp;&nbsp; 5'O37&nbsp;&nbsp; 五位八进制数<br />
&nbsp;&nbsp;&nbsp; 6'Hx&nbsp;&nbsp;&nbsp; 即&ldquo;xxxxxx&rdquo;<br />
&nbsp;&nbsp;&nbsp; 8'h 2 A 合法，在位宽，基数，以及数值之间允许出现空格<br />
&nbsp;&nbsp; 注意：x（或z）在十六进制值中代表4位x（或z），在八进制值中代表3位x（或z），在二进制值中代表1位x（或z）。<br />
2）实数型<br />
3）字符串型<br />
下划线可能随意用在整数或实数中，它们本身没有意义，只是用来提高易读性，唯一的限制是下划线不能用作首字符，因为在verilog中标识符可以与下划线开头（类似于C语言）。</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://mahudu.javaeye.com/blog/233045#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 27 Aug 2008 00:20:28 +0800</pubDate>
        <link>http://mahudu.javaeye.com/blog/233045</link>
        <guid>http://mahudu.javaeye.com/blog/233045</guid>
      </item>
          <item>
        <title>Windows Internals学习一：基础概念和术语</title>
        <author>mahudu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://mahudu.javaeye.com">mahudu</a>&nbsp;
                    链接：<a href="http://mahudu.javaeye.com/blog/150001" style="color:red;">http://mahudu.javaeye.com/blog/150001</a>&nbsp;
          发表时间: 2007年12月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          基础概念和术语<br /><br />1：Windows API<br />&nbsp;&nbsp;&nbsp; Windows应用编程接口（API）是针对Windows操作系统家族的系统编程接口，大致可以分以下几类：<br />&nbsp;&nbsp;&nbsp; 1）基本服务<br />&nbsp;&nbsp;&nbsp; 2）组件服务<br />&nbsp;&nbsp;&nbsp; 3）用户界面服务<br />&nbsp;&nbsp;&nbsp; 4）图形和多媒体服务<br />&nbsp;&nbsp;&nbsp; 5）消息和协作<br />&nbsp;&nbsp;&nbsp; 6）网络<br />&nbsp;&nbsp;&nbsp; 7）Web服务<br /><br />2：进程、线程和作业<br />&nbsp;&nbsp;&nbsp; 首先区分一下程序和进程：程序是一个静态的指令序列，而进程则是指包含了执行一个程序的特定实例时所用到的各种资源，一般来说，一个Windows进程由以下元素构成：<br />&nbsp;&nbsp;&nbsp; 1）一个私有的虚拟地址空间。<br />&nbsp;&nbsp;&nbsp; 2）一个可执行的程序，它定义了初始的代码和数据，并且被映射到进程的虚拟地址空间。<br />&nbsp;&nbsp;&nbsp; 3）一个已打开的句柄列表，指向各种系统资源（如信号量，通信端口和文件等），进程的所有线程都可以访问这些系统资源。<br />&nbsp;&nbsp;&nbsp; 4）一个被称为访问令牌的安全环境，标识了与该进程关联的用户、安全组和特权。<br />&nbsp;&nbsp;&nbsp; 5）进程ID，唯一标识该进程。<br />&nbsp;&nbsp;&nbsp; 6）至少一个的线程。<br />&nbsp;&nbsp;&nbsp; 每个进程都记录了它的父进程（创建者进程）的ID，当父进程退出时，子进程中记录的父进程信息不会被更新，不过这不是问题，因为任何一个进程都不必依赖于父进程信息的有效性。<br />&nbsp;&nbsp;&nbsp; 查看进程信息的工具有很多，典型的有Windows自带的任务管理器和sysinternals出品的procexp工具。<br />&nbsp;&nbsp;&nbsp; 线程是一个进程内部的实体（如前所述，每个进程都至少包含一个线程），线程包括以下最基本的部件：<br />&nbsp;&nbsp;&nbsp; 1）一组代表处理器状态（CPU寄存器中的内容）的信息。<br />&nbsp;&nbsp;&nbsp; 2）两个栈：分别用于线程和内核模式下和用户模式下执行时。<br />&nbsp;&nbsp;&nbsp; 3）线程局部存储区（TLS：thread-local storage），线程私有，线程运行中调用各个子系统、运行库和DLL都会用到这个区域。<br />&nbsp;&nbsp;&nbsp; 4）线程ID（和进程ID在同一个名字空间中，所有永远不可能重叠）。<br />&nbsp;&nbsp;&nbsp; 5）有时线程也会有它们自己的安全环境。<br />&nbsp;&nbsp;&nbsp; 其中易失的寄存器，栈以及么有存储区合起来被称为线程的环境（context），与Windows所在不计算机的体系结构有关。通过Windows提供的GetThreadContext接口，你可以访问这些线程的环境。<br />&nbsp;&nbsp;&nbsp; 虽然线程有自己的执行环境，但是同一个进程内部的所有线程共享该进程和虚拟地址空间以及其它的属于该进程的资源。这样一个线程就可能读或写另一个线程的内存，但是在进程之间，这种互相访问是不允许的。不过凡事都有例外，当一个进程把它的一部分私有地址空间变为共享内存区（Windows APi中称为文件映射对象），或一个进程有权打开第二个进程，调用一些跨进程的函数时，一个进程内的线程就可以直接引用另一个进程的地址空间。<br />&nbsp;&nbsp;&nbsp; Windows中没有提供类似于Unix中的进程树的概念，不过Windows对进程模型作了扩展，称为作业（job）。作业对象的主要功能为：使得一组进程被当作一个整体来管理和维护。<br /><br />3：虚拟内存<br />&nbsp;&nbsp;&nbsp; Windows实现了一个基于平面（线性）的的地址空间的虚拟内存分系统。每个进程都感觉自己有很大的一块私有地址空间。虚拟内存提供了一个内存逻辑视图，它可能并不对应于内存的物理布局。运行的时候，借助于硬件的支持，内存管理器把虚拟地址映射成真正存放数据的物理地址（一般都会把数据放到磁盘上）。由于有了硬件支持，内存管理器不需要任何的进程或线程的信息。<br /><br />4：内核模式与用户模式<br />&nbsp;&nbsp;&nbsp; 为了安全，Windows使用内核模式和用户模式两种处理器模式。<br />&nbsp;&nbsp;&nbsp; 用户程序代码运行在用户模式下，操作系统服务（如系统服务和设置驱动程序）运行在内核模式下。在内核模式下，程序可以访问所有的内存和CPU资源。<br />&nbsp;&nbsp;&nbsp; 虽然每个Windows进程都有它自己私有的内存空间，但是，内核模式的操作系统和设置驱动程序共享一个虚拟地址空间。虚拟内存中每一个页面都被标记了处理器必须在什么访问模式下才可能读或写。<br />&nbsp;&nbsp;&nbsp; 当用户程序需要发出一个系统服务调用时，就会从用户模式切换了内核模式下（通过专门的处理器指令完成），将控制权交还给用户线程时，处理器的模式切换回用户模式。用户模式与内核模式之间的转换本身不会影响线程的调用，因为模式转换并不是环境切换。<br /><br />5：对象和句柄<br />&nbsp;&nbsp;&nbsp; 在Windows中，对象是指一个静态定义的对象类型的单个运行时的实例（如进程、线程、文件等）。对象类型包括了一个系统定义的数据类型、在该数据类型的实例上进行操作的一些函数，以及一组对象属性。<br />&nbsp;&nbsp;&nbsp; 句柄：即指向对象实例的引用。
          <br/><br/>
          <span style="color:red;">
            <a href="http://mahudu.javaeye.com/blog/150001#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 21 Dec 2007 15:33:50 +0800</pubDate>
        <link>http://mahudu.javaeye.com/blog/150001</link>
        <guid>http://mahudu.javaeye.com/blog/150001</guid>
      </item>
      </channel>
</rss>