食堂里撑着

好久没来--谈课程设计

2
阅读(1301)

自从考了科二还没过之后,第九周(本周)我彻底陷入了混沌的状态.大概是之前练车把精力耗光了吧.(其实就是冬天来了懒癌发作).

打着双十一快来了的旗号逛了两天淘宝,左右踌躇迟迟难以下定决心.深感钱包太瘪,自己日益增长的物质需求和落后的生产力之间的矛盾突出.今后要努力学习科学文化知识,为了买东西不用考虑价格而奋斗!

/////////----------------------------------正文-----------------------------------------------------///////////

九,十周乃课程设计周.课题是时序比较器.时序比较器是数据处理器的一个部分,它能将输入的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写的简单状态机替代.

课设并行.JPG

部分截图如上所示,系统本身不复杂,状态机也就是检测到按键脉冲,状态跳转.

于是上周天,我在宿舍一晚上把线全部连好.课设.jpg

完成图如上所示.

然而,周一到实验室下载cupl代码烧进去,状态跳转完全不对. T1 - T2- 空. gal中用到的四个触发器全是0,鬼知道跳到哪里去了啊???

..............................漫长的调测后,并没发现问题....................

..............................碰到这种情况的不止我一个....................

.............................试着proteus仿真........................................

..............................proteus仿真总是失败...............................

.............................据网上说是spice模型的问题....................

............................时间有限.......................................................

.............................决定copy上届的电路和代码....................

............................那都是一届届前辈不断改进的成果啊......

............................拆自己的电路,无脑连线ing........................

!!!!!!!!!!!!!!!!!!!!!!机缘巧合老师说可以用FPGA实现............

............................可以不用面包板了oyeah!!!!!!!!!!!!!!!!!!!!!

...........................不过要求是串行输入数据.............................

...........................这一点不难好吗?............................................

..........................比连面包板简单多了好吗?............................


...........................于是.................................................................


blob.png


本系统与原系统的改变:

  1. 并行改为串行输入. 一个按键选择1/0 ,一个按键确认.

  2. 输入一个数字,smg即可显示.

  3. 改掉原系统不合题目要求的部分.如led的闪烁方式

  4. 一块fpga开发板搞定,不用连线了~~~




Baidu
map