如何利用计算机语言实现芯片仿真功能
老师留了这么一个题目:利用软件实现大学数字逻辑电路的仿真实验(不包扩时序电路部分),我想了很久连线问题可能还可以,可是74LS系列的芯片如何解决呢希望大虾们出手相帮我现在有一思路不知能否值得推敲(毕业设计老师给否定了)
我想:芯片仿真功能和编译原理有异曲同工之处,我先用TC++把芯片建成一些类库,每个芯片的逻辑功能可以分为该类的公共函数函数可分为(输入,输出,转换)等;
我想:DELPHI将芯片导线的搭接程序执行相应的C++代码,当需要执行看结果时,将C++代码进行调整次序生成正常的C++文件利用WINEXEC进行编译C++,C++生成相应的记录文件,DELPHI通过读取
C++生成的记录文件把数据取出来在赋值给DELPHI上的控件做指示灯的亮灭状态,
我的这种方法就是想通过可视化操作来动态生成TC++文本文件然后通过TC++的编译把结果传给记录文件,DELPHI能识别这个文件就算成功了
不过我的老师不同意我的方案我想让诸位大虾查验一下我的思路能否可行谢谢了
老师留了这么一个题目:利用软件实现大学数字逻辑电路的仿真实验(不包扩时序电路部分),我想了很久连线问题可能还可以,可是74LS系列的芯片如何解决呢希望大虾们出手相帮我现在有一思路不知能否值得推敲(毕业设计老师给否定了)
我想:芯片仿真功能和编译原理有异曲同工之处,我先用TC++把芯片建成一些类库,每个芯片的逻辑功能可以分为该类的公共函数函数可分为(输入,输出,转换)等;
我想:DELPHI将芯片导线的搭接程序执行相应的C++代码,当需要执行看结果时,将C++代码进行调整次序生成正常的C++文件利用WINEXEC进行编译C++,C++生成相应的记录文件,DELPHI通过读取
C++生成的记录文件把数据取出来在赋值给DELPHI上的控件做指示灯的亮灭状态,
我的这种方法就是想通过可视化操作来动态生成TC++文本文件然后通过TC++的编译把结果传给记录文件,DELPHI能识别这个文件就算成功了
不过我的老师不同意我的方案我想让诸位大虾查验一下我的思路能否可行谢谢了
解决方案 »
- 求助,UpdateBatch时数据丢失
- 多线程打开excel,中出现的问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 请问delphi高手!!!!!!!!!!!!!!!!!!!!!!!1
- 如何用Delphi实现安全接口,谁能给我一个Delphi的例子。
- OOP精彩疑问!
- 关于RAVE的问题
- 真的这么难吗?....如何将一个记录中的某一个或多个变量设为无效?在线等待!!!!
- 求助:如何在一Word模板的固定表格中插入文字?
- Shiori Player X alpha 测试开始!!!!
- 在更换墙纸后,系统会发送什么消息?
- 第一个解决的50分:有没有不用循环将某一字段值全部变为一指定值的语句或SQL语句
- 没想道今年的硕士研究生复试国家线这么低,我政治考了43没想到接到复试通知了,高兴,为了我半年的辛苦,也为了我能顺利通过复试,散分!
我觉得真的很难(主要感觉是麻烦,要做那么多芯片的功能,虽然有些功能可以共用)
我选择做一个MIS
只能帮你UP
他要用这个毕业设计进行仿真实验
是个真家伙的
我的这种方法就是想通过可视化操作来动态生成TC++文本文件然后通过TC++的编译把结果传给记录文件,DELPHI能识别这个文件就算成功了
***********************************************************如果我没理解错,你想动态生成代码——再编译——执行——输出结果,是这样吗?
这样的话你还不如做一个解释器,动态生成代码——解释执行——输出结果,如果这样的的方法可以解决你的问题,那么请去下一个解释器的组件来用就好了,而你自己要做的就是实现动态生成代码的功能。仿真芯片我不懂,以上全部是依照我理解你那段话的意思提出的建议。至于解释器的组件,网上很多可以解释PASCAL代码的,我知道一些,估计C++也不少,那就要你自己去找了。
我认为使用OOP处理线路连接,说的轻松,做起来,呵呵,难了
你知道EWB吗?一个很著名BC++写的电子线路分析软件,你可以参看的
Up
在数字电路的书中有其内部结构,
VHDL语言如果熟悉的话,则EASY。
后面的问题只是如何写函数处理的。
代表74的输入引脚,
返回也是一个数组,代表74的输出引脚。
对于每一个芯片,都应有一个对应的函数。
*********************************************************************************
我的想法:
你要做的可能类似于常见的一些电路制作软件,但在某些方面比其要复杂一些。你将各种芯片(包括74LS系列)制成图形控件,像你说的那样,建立组件库,以便用户使用。当用户将空间放置到窗体上时,程序自动生成其对应的代码,并根据用户的联线,对它的一些属性和事件进行初始化处理(比如74LS系列的电源属性、接地属性、输出管脚等),并将其生成pas代码文件。你可以从网上down一些能够解释或编译pas的东东,在后台对其进行编译或解释,然后调出运行画面即可。
*********************************************************************************
------------------------------------------------!!!!!这样行不行?将74LS系列的芯片,比方芯片A,有32根引脚,因为每根引脚都有不用的功能,
所以你将芯片A写成一个函数,它包括32个参数(可怕),然后做成一个控件,
等待用户的使用,联线时,如果连上1-23号引脚,则1-23号参数置1,执行各自的
功能,其余置0,不用管他.这样,如果你的控件内部逻辑和外部接口没问题,不管用多少控件,
都只是纯函数调用问题,够软了吧?
主要是没有时序电路,74LS系列的芯片的功能也比较简单,应该不难实现
而且大部分的函数可以通用,比如电源、接地、与、或、非等等
加油吧,你这个课程设计不错,挺有创意,
我的是做网站 :-(
现在我正在一家公司打工,为了换一个毕业设计
如果是做动态生成代码的那种方案,我想还是生成C++代码的原始方案通过文件记录来传递数据0,1
我想问一下我的这种方案和众网友的DOWN OOP解释器组件做动态代码的推荐方案是否都有可行性啊
OOP解释器组件的那种比我自己生成C++的那种解决方案能否详细对比一下吗????
要知道我的毕业设计老师是很保守的他并不认为有动态生成代码并解释执行的必要,用他的话说这个题目不需要做组件,更不需要后台执行什么怎么连的就用记录体或者是BOOL变量就能实现了
寒假前我也这样认为不过我确实琢磨不透他的解决方案啊,我是对这个毕业设计感兴趣才选的题目不过,也做了好多的方案和想法才得到了上面的想法、,我想知道我的方法(楼主问题)有可行性吗????
图上的每一个节点是实物的集成电路单元或者连接点。
然后,你必须软件实现各个种类的逻辑电路单元和连接点单元。
这样,根据这些部件,你就能够建立一个表示具体电路的有向图。 状态的转换可以通过多次的扫描获得。当输入状态确定后,你必须对各个节点进行扫描,
直到他们的电平不再变化,这在物理上可以理解为电平建立的时间。 当图的状态确定后,
输出状态也随之确定。 这样,你就可以获得相应的输出。个人建议,仅供参考。我们以前有人做 PLC 软件模拟的时候也是用了多次扫描这个原理。
我声明了我的意见只是针对你那段话的。既然老师不同意,应该听他的。
baoyuanzhi()、: fermium(列御寇) 两位大虾: 我也是受到VHDL,EDA的启发才想到我上述的方案的不过苦于这套仿真软件的设计国内十分少见,相关的参考资料少而又少无论对我自己,还是对带我的老师来说可能都是挑战啊我相信我的实力如果按我的方案做我会成功的,不过我找不到相应的理论来做支持仅仅是一个VHDL,EDA恐怕还不能说明问题的,要知道我们学校的老师可是理论工作者啊如果我真的在这段时间找不到类似的成功案例或者是正宗的门派学说做我的挡箭牌的话那么我担心老师们会觉得我的独门功夫只不过是瞎胡闹的啊,要知道老师毕竟是老师,老师不是老板,东西好了老板会高兴,老师们往往喜欢著书立说,一旦好多老师在未来的答辩中对这个东东认识不足或者只是想当然,或者他们在大学的时候也是荒废了学业(我说的是假设,因为我们的老师却是很自负的)我担心我会砸在他们的手中毕竟北大王选那样的老泰斗现在还不是普遍,希望大家能够继续踊跃讨论啊
比如:_ _ _ __
Y=ABC+AC+BC
可以化简为 __
_ _ _ _ _ _ _ _ _
Y=ABC+(A+B)C=(AB)C+(AB)C=C
算法是否考虑卡络图?
现在用程序来实现化任意逻辑函数为最简形式,我是菜鸟,今天从中午到现在没出门也没能编出来,请高手帮忙,最好给出程序!!!
我300分全给他!
所以我觉得该系统一定不能对图来做判断,应该是从图中得到信息变成逻辑表达式,然后利用编译原理检验逻辑文法的正确与否。所以需要你对芯片作拆分,不过芯片拆分本身的工作量就很大,外加建立有基于向图算法的逻辑式生成器,检验并得出结论的逻辑编译器,my gold,建议你还是换课题吧。这个项目够5个毕业设计了。
呵呵,一点小意见。
这个经验数据库的设计我觉得也完全可以作为一个数据库系统设计的毕业设计来完成了,如果你没有大量的数字电路设计经验,建立这样一个经验数据库恐怕不易。不过说实在的,大学的毕业设计很多都是开题时豪情万丈,论文写的文采飞扬,就是可执行程序功能超级欠缺。当年我好像也是一样,最后出的程序没有完成开题报告中我提到的1/4。反正最后答辩的时候你在讲论文和理论时多耗点时间就没有人会仔细看你的源程序了,因为那些答辩组的教授们好像也都是长于理论而欠于动手。呵呵。工程师和教授毕竟是两个领域的啊。
因为以前是用来仿真 PLC 的梯形图的,所以逻辑没有数字电路那么复杂。
多次的扫描占用的时间并不是很明显。看来如果是对数字电路的话,这种方法
只能作最差打算。继续关注该话题。
难度太高啦!!!!!!!!!!