zhliao2

风雨兼程,一路向北-------fpga (Keep a quiet heart study)

06 2012 档案

以3种方式描述3人表决器件(其中也涉及到了模块化编程)
摘要:选自《《基于VHDL的FPGA和NoisII实例精炼》》一--*************第一种方式*******************--数据流方式,主要用于简单的逻辑功能的实现,以信号赋值的方式来体现library ieee;use ieee.std_logic_1164.all;entity threevoter is port ( one : in std_logic; two : in std_logic; three : in std_logic; ispass : out std_logic);end threevoter;architecture dat... 阅读全文

posted @ 2012-06-30 23:16 zhliao 阅读(567) 评论(0) 推荐(0)

vhdl和原理图的混合设计
摘要:首先建立一个VHDL工程文件FPGA_VHDL:把所需的代码写上(非门):library ieee;use ieee.std_logic_1164.all;entity FPGA_VHDL isport ( x : in std_logic; y : out std_logic);end FPGA_VHDL;architecture dataflow of FPGA_VHDL isbegin y <= not x;end dataflow;编译好了之后建立按如下步骤:在Block1双击空白处:FPGA_VHDL为VHDL生成的原理图设计如下,其中只是加了AND2:最后设置顶层文件 阅读全文

posted @ 2012-06-30 20:58 zhliao 阅读(2638) 评论(0) 推荐(0)

该这么去学习
摘要:“身体是革命的本钱”。 拼命不是办法,可以熬一两个通宵,有些人连续工作了三天三夜, 但是半个月都没有恢复过来,这样是不是得不偿失? 学习工作应该是一个长期的过程, 像马拉松而不是百米冲刺。要非常注意调整学习和工作的强度,要保证每天尽量有相对充沛的精力。 技术没有贵贱之分,虽然技术没有贵贱,但是门槛是有高低的, 无论如何,做IC的门槛要比做网页的高,这一点无可否认。作为个人奋发向上的想法还是应该有的,努力在自己喜欢的行业上做的更好,而不应该停留在比较肤浅的层次上。 学习有些随心所欲,这会带来了无尽的麻烦,也大大阻碍的个人的发展。 学习过于讲究数量和时间,那样学习既苦而已效率不高,要... 阅读全文

posted @ 2012-06-29 22:14 zhliao 阅读(189) 评论(0) 推荐(0)

【转】奋斗、忘却、不放弃,我的人生又会是怎样?
摘要:真心希望中国的IT事业越走越好!--------这些日子我一直在写一个实时*作系统内核,已有小成了,等写完我会全部公开,希望能够为国内IT的发展尽自己一份微薄的力量。最近看到很多学生朋友和我当年一样没有方向 ,所以把我的经历写出来与大家共勉,希望能给刚如行的朋友们一点点帮助。 一转眼我在IT行业学习工作已经七年多了,这期间我做过网页,写过MIS、数据库,应用程序,做过通信软件、硬件驱动、协议栈,到现在做*作系统内核和IC相关开发,这中间走了很多弯路,也吃了不少苦。 我上的是一个三流的高校,就连同一个城市的人多数都不知道。因为学校不好也就没有指望能*学校名气找一个好工作。所有的希望都寄托在自己. 阅读全文

posted @ 2012-06-29 20:13 zhliao 阅读(202) 评论(0) 推荐(0)

串行通信采用奇偶校验方式发送数据
摘要:编制串行通信的数据发送程序,发送片内RAM50H~5FH的16个字节的数据,串行接口设定为方式2,采用奇偶校验方式。设晶振频率为6MHz。 ORG 0000H LJMP START ORG 0030HSTART: MOV SP, #30H MOV PCON, #80H MOV SCON, #80H MOV R0, #50H MOV R7, #16LOOP: MOV A, R0 MOV C, P ;红色部分为奇偶校验方式 MOV TB8, C MOV SBUF, A JNB TI, $ CLR TI ... 阅读全文

posted @ 2012-06-20 11:01 zhliao 阅读(819) 评论(0) 推荐(0)

【转】提问的智慧
摘要:此文让我受益良多。值得一读,大家如果也觉得不错就一起来推~~~ --------------------------------- 在黑客世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度,同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以获取你最想要的答案。 首先你必须明白,黑客们只偏爱艰巨的任务,或者能激发他们思维的好问题。 如若不然,我们还来干吗?如果你有值得我们反复咀嚼玩味的好问题,我们自会对你感激不尽。好问题是激励,是厚礼,可以提高我们的理解力,而且通常会暴露我们以前从没意识到或者思考过的问题。对黑客而言,“问得好!”是发自内心的大力称赞。... 阅读全文

posted @ 2012-06-19 10:25 zhliao 阅读(203) 评论(0) 推荐(0)

原码,反码,补码
摘要:原文:http://blog.csdn.net/liujianli123/article/details/7433759以一个字节进行说明:1.先从计算机存储的机制说起:直接说有符号数,先说一个字节的的补码表示范围为-2^7~(2^7-1),即-128~127。当X>0时,X[原码]=[反码]=[补码];当X=0时,存在[+0]和[-0]两种表示形式,[+0]原=0000 000,[+0]反=0000 0000,[+0]补=0000 0000[-0]原=1000 000,[-0]反=1111 111,[-0]补=0000 0000当X<0时(重要):a.负数的原码:最高位D7为1, 阅读全文

posted @ 2012-06-14 11:16 zhliao 阅读(744) 评论(0) 推荐(0)

判断数据是否有溢出(OV)
摘要:原文:http://zhidao.baidu.com/question/361453111.htmlCY位是累加器的进位、借位标志。下文的叙述按16位机来举例说明,如果是8位机或其它字长,则可换一个例子,但道理相似。对于无符号数的运算,CY位就可以表示其是否溢出。但如果是有符号数,则不能按CY标志来判断了。为此,设了另一个标志OV,其含义就是“假如是有符号数运算,是否出现了溢出”。例如对于16位运算器,65534 + 3,(即二进制的1111111111111110 + 0000000000000011),本该得65537,(即二进制的10000000000000001),但因为寄存器只有16 阅读全文

posted @ 2012-06-14 11:02 zhliao 阅读(14965) 评论(0) 推荐(2)

单位换算
摘要:b 是 bit 位的缩写B 是Byte 字节的缩写1B=8b1kb=1024b1GHz=1000MHz1MHz=1000kHz1kHz=1000Hz1GHz = 0.0005us = 0.0000005ms1MHz = 0.5us = 0.0005ms1KHz = 500us = 0.5ms1hz = 500000us = 500ms1ms=1000us1ms = 0.001s1us = 1000ns1uf = 10_0000pf1uf = 1000nfMHz的倒数是us级别的Hz的倒数是s级别的KHz的倒数是ms级别的在计算机网络或者是网络运营商中,一般,宽带速 率的单位用bps(或b/s) 阅读全文

posted @ 2012-06-14 10:30 zhliao 阅读(2159) 评论(0) 推荐(0)

【转】什么是面向对象
摘要:先说一下面向过程和面向对象,这是两种思想,它们都能达到用程序来完成一件事情的能力。 只不过思维方式不一样而已。 面向过程是把一件事一项工程分解成为一个个小的功能,用一个个函数来实现. 面向对象是把事情看成是一个个小的对象组成的,或者说一个个小部分组成的,这些对象之间的相互关系,构成了整个项目. 在面向对象的思想中,万物皆对象,我是,你是,他也是。 而"类",就是对象的抽象或者说是概括。比如,我你他都可以概括为人类。 总的来说,类是抽象的虚的,而对象是一个个活生生的具体的事物。 人是一个类,我你他就是对象。 一般的面向对象程序设计方法都是先设计一个类,然后由这个类产生一个对象 阅读全文

posted @ 2012-06-13 11:13 zhliao 阅读(251) 评论(0) 推荐(0)

c指针
摘要:大一记载的笔记: 动态内存和静态内存的比较 静态内存是有系统自动分配,由系统自动释放 静态内存是在栈分配的 动态内存是由程序员手动分配, 手动释放 动态内存是在堆内存分配的地址一般用十六进制表示(H) 指针就是地址, 地址就是指针 地址就是内存单元的编号,不是编码。 指针变量是存放地址的变量 指针和指针变量是两个不同的概念 但是要注意:通常我们叙述时会把指针变量简称为指针, 实际他们的含义并不一样附注: 1:乘法 2:定义指针变量 int * p //定义了一个名字叫p的变量, int *表示p只能存放int变量的地... 阅读全文

posted @ 2012-06-09 02:03 zhliao 阅读(296) 评论(0) 推荐(0)

c结构枚举等
摘要:大一记载的笔记: 补码 已知十进制求二进制 求正整数的二进制 除2取余, 直至商为零,余数倒叙排序 求负数的二进制 先求与该负数相对应的正整数的二进制代码,然后将 所有为取反,末尾加1,不够位数时,左边补1 求零的二进制 全为零 已知二进制求十进制 如果首位是0,则表明是正整数,按普通方法来求 如果首位是1,则表明是负整数 将 所有位取反,末尾加1,所... 阅读全文

posted @ 2012-06-09 02:03 zhliao 阅读(203) 评论(0) 推荐(0)

c基础
摘要:大一记载的笔记:常量是以什么样的二进制代码存储在计算机中 整数是以补码的形式转化为二进制代码存储在计算机中的 实数是以IEEE754的形式转化为二进制代码存储在计算机中的 字符的本质实际也是与整数的存储方式相同字节就是存储数据的单位, 并且是硬件所能访问的最小单位 1//死机程序# include <stdio.h># include <malloc.h>int main(void){ while(1) { int * p = (int *)malloc(1000); }} 2# include <stdio.h>int m... 阅读全文

posted @ 2012-06-09 01:59 zhliao 阅读(272) 评论(0) 推荐(0)

c函数
摘要:时常看看大一记载的c函数的笔记: double sqrt(double x) 求的x的平方根 int abs(int x) 求x的绝对值 double fabs(double x) 求x的绝对值函数是c的基本单位, 类是java, c#, c++的基本单位 1#include<stdio.h>void max(int i, int j){ if(i > j) printf("%d\n", i); else printf("%d\n", j);}int main(void){ int i, j,... 阅读全文

posted @ 2012-06-09 01:57 zhliao 阅读(311) 评论(0) 推荐(1)

CPU提供的栈的机制(POP/PUSH)
摘要:选自王爽《《汇编语言》》执行push ax的情况:栈空的情况:执行pop ax的情况:关于栈定超界问题:总结: 阅读全文

posted @ 2012-06-09 01:25 zhliao 阅读(798) 评论(0) 推荐(1)

地址/数据/控制总线
摘要:选自王爽《《汇编语言》》一个cpu有n跟地址线,则可以说这个cpu的地址总线的宽度为n,这样的cpu最多可以寻找2的n次方内存单元。图中展示了10根地址线的cpu向内存发出地址信息11时10根地址线上传送的二进制信息。cpu与内存或其他器件之间的数据传送是通过数据总线来进行的。数据总线的宽度决定了cpu和外界的数据传送速度。8跟数据总线一次可传送一个8位二进制数据(即一个字节)。16根的数据总线一次可传送两个字节。控制总线:小结:上述的那些存储器,在物理上是独立的器件,但是在以下两点是相同的: 都是和cpu的总线相连 cpu对它们进行读或写的时候都通过控制线发出内存读写命令。这也就是说,c.. 阅读全文

posted @ 2012-06-08 12:53 zhliao 阅读(5642) 评论(0) 推荐(0)

CPU如何执行指令(CS/IP)
摘要:选自王爽《《汇编语言》》物理地址:段地址x16必然是16的倍数,所以一个段的起始地址也一定是16的倍数;偏移地址为16位,16位地址的寻址能力为64KB,所以一个段的长度最大为64KB;还有一点及时可以用不同的段地址和偏移地址形成同一个物理地址。CPU是怎么读指令的(very important):总结:CPU将CS:IP指向的内存单元中的内容看作指令,因为,在任何时候,CPU将CS,IP中的内容当作指令的段地址和偏移地址,用它们合成指令的物理地址,到内存中读取指令码,执行。如果说,内存中的一段信息曾被CPU执行过的话,那么,它所在的内存单元必然被CS:IP指向过。 阅读全文

posted @ 2012-06-08 11:23 zhliao 阅读(8480) 评论(0) 推荐(3)

A/D模数转换
摘要:先上AD574功能表:硬件电路图:程序流程图:c程序:/************************************************************************************************ A/D实验程序选择的晶振是3MHz,选用地址Q0,Q1,用定时器1在1s后重新启动AD转换(important) 程序是copy seataes的,感谢ing,我只是把注释补全,自己能更快的理解罢了******************************************************************... 阅读全文

posted @ 2012-06-07 15:08 zhliao 阅读(1020) 评论(0) 推荐(0)

ALE/RD/WR/扩展存储器
摘要:纠结了这么久,现在总算有点儿头绪了,先把它整理到这里先,有几点还是j经常被弄糊涂:地址和数据,地址/数据复用,地址的计算,总线的概念,执行指令跟脉冲的关系,哎呀呀,看来计算机组成和原理不看不行啊,得找个时间瞧瞧,过把瘾了解了解。。。使用ALE信号作为低8位地址的锁存控制信号。 以PSEN信号作为扩展程序存储器的读选通信号,在读外部ROM是PSEN是低电平有效,以实现对ROM 的读操作。由RD和WR信号作为扩展数据存储器和I/O口的读选通、写选通信号。ALE/PROG: 当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 阅读全文

posted @ 2012-06-06 21:48 zhliao 阅读(5858) 评论(0) 推荐(0)

单片机关于时钟和不同字节不同指令时序(ALE)
摘要:首先贴上时钟的结构和电路:了解下什么是机器周期和指令周期:各种不同字节不同周期指令的时序(important): 阅读全文

posted @ 2012-06-06 21:12 zhliao 阅读(480) 评论(0) 推荐(0)

关于频率(Fmax)
摘要:原文:http://bbs.ednchina.com/BLOG_ARTICLE_194116.HTM哎呀呀,懵了。。。先转到这先每个CPU都有一个工作频率,FPGA也不例外(当然,只有你的设计应该是时序逻辑),那该频率是根据什么形成的呢?首先,我们来分析16-bit计数器,通过该用例,掌握QuartusII的时序分析器及了解一个时序逻辑频率的概念。源代码如下(QuautusII7.2SP3,EP2C35F484C8):library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_log 阅读全文

posted @ 2012-06-05 21:10 zhliao 阅读(3432) 评论(0) 推荐(0)

【转】时钟抖动和时钟偏移
摘要:系统时序设计中对时钟信号的要求是非常严格的,因为我们所有的时序计算都是以恒定的时钟信号为基准。但实际中时钟信号往往不可能总是那么完美,会出现抖动(Jitter)和偏移(Skew)问题。所谓抖动(jitter),就是指两个时钟周期之间存在的差值,这个误差是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响。除此之外,还有一种由于周期内信号的占空比发生变化而引起的抖动,称之为半周期抖动。总的来说,jitter可以认为在时钟信号本身在传输过程中的一些偶然和不定的变化之总和。0Y:L7J时钟偏移(skew)是指同样的时钟产生的多个子时钟信号之间的延时差异。它表现的形式是多种多样的, 阅读全文

posted @ 2012-06-05 01:13 zhliao 阅读(747) 评论(0) 推荐(0)

常用汇编指令
摘要: 阅读全文

posted @ 2012-06-03 01:23 zhliao 阅读(156) 评论(0) 推荐(0)