lzc520xm 发表于 2009-11-26 10:41:44

谁能看懂这些代码????--!

呵呵~大家别骂我,其实是个很简单的错误程序,(我只学了一个周,属于超级菜鸟)程序如下: 其实就是为了将下面的原理图用
VERILOG写出来:可怎么编译就是不过。
   module pv1(po1,po2,po3,po4,po5,po6,DSP_PDPINTA,
         p1,p2,p3,p4,p5,p6,RCHIGH,IO_FALURE,RCLOCK,IO_UNLOCK);
output po1,po2,po3,po4,po5,po6,DSP_PDPINTA;
input p1,p2,p3,p4,p5,p6,RCHIGH,IO_FALURE,RCLOCK,IO_UNLOCK;
reg po1,po2,po3,po4,po5,po6;

always@(p1 or p2 or p3 or p4 or p5 or p6 or RCHIGH orIO_FALURE orRCLOCK or IO_UNLOCK)
if(!RCHIGH||IO_FALURE||RCLOCK||IO_UNLOCK)
   po1<=0;
   po2<=0;
   po3<=0;
   po4<=0;
   po5<=0;
   po6<=0;
else
   po1<=p1;
   po2<=p2;
   po3<=p3;
   po4<=p4;
   po5<=p5;
   po6<=p6;
else if(p1 xnor p2)
   p1<=0;
   p2<=0;
else po1<=p1;
   po2<=p2;
if(p3 xnor p4)
   p3<=0;
   p4<=0;
else po3<=p3;
   po4<=p4;
if(p5 xnor p6)
   p5<=0;
   p6<=0;
else po5<=p5;
   po6<=p6;
if(!IO_FALURE)
   DSP_PDPINTA<=1;
else DSP_PDPINTA<=0;

endmodule

原理图如下:还望高手不吝指点。。。。
http://cache.amobbs.com/bbs_upload782111/files_22/ourdev_507517.jpg
(原文件名:3.jpg)

windowsce 发表于 2009-11-26 11:06:11

如果你是要把那个原理图用verilog实现,那么不是用always,而是assign。

yy43102328 发表于 2009-11-26 11:11:35

我老总说过这样的话:CPLD的误区是能用画图的却偏偏要写成代码!

lzc520xm 发表于 2009-11-26 11:50:26

“我老总说过这样的话:CPLD的误区是能用画图的却偏偏要写成代码!”
关键这不是最终原理图,用代码写的话,以后可能会好改动。
“如果你是要把那个原理图用verilog实现,那么不是用always,而是assign”
电平触发的 用assign行吗?还是always好些吧?

windowsce 发表于 2009-11-26 12:52:38

建议你还是用原理图吧。
如果非要用verilog,可以去查查门级建模。
写出来的东西估计你一个月之后再看如天书一样。那远不如原理图来的直观。

ngzhang 发表于 2009-11-26 13:47:57

你这东西能综合就怪了。这种给你原理图了的还是输入原理图吧。
自己设计倒是应该从写代码开始,原理图输入不能适应现在越来越大的设计规模了。

dickhou 发表于 2009-11-26 14:59:21

只说语法:
这么多个if-else之间的语句没有加begin/end?

wei1985_5 发表于 2009-11-26 15:31:17

组合逻辑用assign写很直观。
assign a=b?c:d;

xuande 发表于 2009-11-26 17:14:03

要用行为语言描述,必须搞清楚它的功能。这样的图,谁能一下子知道,它是译码器还是别的什么“器”?
只能用结构化的描述方法。

yvhksovo 发表于 2009-11-26 21:24:31

呃。。。。
我也觉得应该是用assign语句。
毕竟从你的电路图看好像不是时序逻辑,而是一些与门非门做的组合逻辑。

xiaobenyi 发表于 2009-11-30 12:59:42

时钟接地的D触发器?

edwin 发表于 2009-12-30 20:28:28

楼主的编程风格有问题:
   1.always 写的组合逻辑电路, 赋值用的非阻塞赋值
   2.电路里面有触发器时序逻辑电路,楼主把时序和组合写在一个块。

   3.多条语句中应该加入begin end
建议 时序电路单独编写模块
   在顶层模块例化调用即可 顶层里面就剩下组合逻辑电路,用assign语句就可以搞定

dfysy 发表于 2010-1-8 19:43:05

楼主,你这个图太亲切了,我2000年左右使用1K10的时候就这么干过,不过比你这个还复杂,但是刚毕业,干劲十足。可是过了一年自己都看不懂了,我的同事要把代码从Altera转到Quicklogic费了很多劲才弄过去。
    画原理图的确直观,但是对于后期维护和移植都很不方便,尤其是如果规模很大的时候,劝你还是劝劝老板用Verilog或者VHDL写吧

rainyss 发表于 2010-1-9 03:53:43

【2楼】 yy43102328
积分:101
派别:
等级:------
来自:
我老总说过这样的话:CPLD的误区是能用画图的却偏偏要写成代码!
 

你们老总真可爱.

lzc520xm 发表于 2010-1-9 10:31:49

好久没来这里了,谢谢大家的关注。祝大家新年快乐~ 万事如意。
呵呵 我现在看起来也好亲切的感觉。
特别感谢 EDWIN~~~  谢谢你的指点。
一会我就改。。。。。哎~ 太菜了,说的自己无地自容了 呵呵
页: [1]
查看完整版本: 谁能看懂这些代码????--!