好久没来--谈课程设计
2赞自从考了科二还没过之后,第九周(本周)我彻底陷入了混沌的状态.大概是之前练车把精力耗光了吧.(其实就是冬天来了懒癌发作).
打着双十一快来了的旗号逛了两天淘宝,左右踌躇迟迟难以下定决心.深感钱包太瘪,自己日益增长的物质需求和落后的生产力之间的矛盾突出.今后要努力学习科学文化知识,为了买东西不用考虑价格而奋斗!
/////////----------------------------------正文-----------------------------------------------------///////////
九,十周乃课程设计周.课题是时序比较器.时序比较器是数据处理器的一个部分,它能将输入的8421BCD码存储并进行比较,最终以十进制数显示其大小。时序比较器的功能是,用同一组输入端口分两次送入两组数据,经过比较显示出数值大的一组数据值。
该系统的设计难点有两个.一.系统的控制器要求使用GAL16V8.器件本身很老旧,硬件资源不多; 二.整个系统都是在面!包!板!上完成的. 这一周大部分时间我都在量长度,剥!导!!线!!!生无可恋!!!!
我们的gal16V8器件来自ATMEL.依据网上的教程,用PROTEL99开发,然而我总是找不到菜单PLD. 后来改用atmel的wincupl软件.官网即可下载,提供长期序列号可以免费使用.win8.1下运行正常.如软件名称,开发使用cuplhdl语言.基本用法参见http://www.qsl.net/bh1phl/CUPL_for_GAL16V8.html.
尝试将led写入gal中遇到了问题
Name Controller;
Partno 1;
Revision 1;
Date 2016-10-27;
Designer ZYH;
Company NUPT;
Assembly NULL;
Location NULL;
Device g16v8;
/** Inputs **/
Pin [1,11] = [CLK,!E0];
Pin 2 = EE;
Pin 3 = GG;
Pin 4 = LL;
Pin 5 =CNT8 ;
Pin 6 = AJ;
PIN 7 = RST;
/** Outputs **/
Pin 12 = LED1;
Pin 13 = LED2;
Pin 14 = A0;//Q0
Pin 15 = A1;//Q1
Pin 16 = A2;//Q2
Pin 17 = A3;//Q3
A0=T0;
A1=T1;
A2=T2;
A3=T3;
LED1=A1#(A3&(!CNT8)&CLK&(EE#GG));
LED2=A2#(A3&(!CNT8)&CLK&(EE#LL));
T0=A3&CNT8&(EE#GG#LL)&(!RST);
T1=((A1&!AJ)#A0)&(!RST);
T2=((A2&!AJ)#(A1&AJ))&(!RST);
T3=((A2&AJ)#(A3&(!CNT8)&(EE#GG#LL)))&(!RST);
需要引入中间变量T0..T3 不然,则无法将led1,led2放入gal. ?????原因不明白,此处存疑.
///-----------------------------------------------------------------------------------------///
继续更我的课程设计.
上周末的时候,为了验证自己的设计是否万无一失,于是在FPGA中使用原理图模式将课设的电路搭了一遍,gal部分用verilog写的简单状态机替代.
部分截图如上所示,系统本身不复杂,状态机也就是检测到按键脉冲,状态跳转.
于是上周天,我在宿舍一晚上把线全部连好.
完成图如上所示.
然而,周一到实验室下载cupl代码烧进去,状态跳转完全不对. T1 - T2- 空. gal中用到的四个触发器全是0,鬼知道跳到哪里去了啊???
..............................漫长的调测后,并没发现问题....................
..............................碰到这种情况的不止我一个....................
.............................试着proteus仿真........................................
..............................proteus仿真总是失败...............................
.............................据网上说是spice模型的问题....................
............................时间有限.......................................................
.............................决定copy上届的电路和代码....................
............................那都是一届届前辈不断改进的成果啊......
............................拆自己的电路,无脑连线ing........................
!!!!!!!!!!!!!!!!!!!!!!机缘巧合老师说可以用FPGA实现............
............................可以不用面包板了oyeah!!!!!!!!!!!!!!!!!!!!!
...........................不过要求是串行输入数据.............................
...........................这一点不难好吗?............................................
..........................比连面包板简单多了好吗?............................
...........................于是.................................................................
本系统与原系统的改变:
并行改为串行输入. 一个按键选择1/0 ,一个按键确认.
输入一个数字,smg即可显示.
改掉原系统不合题目要求的部分.如led的闪烁方式
一块fpga开发板搞定,不用连线了~~~