搜索
bottom↓
回复: 18

基于FPGA 用verilog语言编写的多路模拟电子开关

[复制链接]

出0入0汤圆

发表于 2013-10-10 11:07:03 | 显示全部楼层 |阅读模式
请问一对八的应该怎么写程序?比如说单片机通过S2 S1 S0三位数据发送给FPGA ,fpga根据三位数值判断电子开关转换。我刚学不久  还请各位大侠帮忙 ,谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入8汤圆

发表于 2013-10-10 11:19:11 | 显示全部楼层
你确定是模拟开关

出0入17汤圆

发表于 2013-10-10 13:07:46 | 显示全部楼层
三位数据控制fpga的8个io的高低输出,进而控制开关

出0入0汤圆

 楼主| 发表于 2013-10-10 14:20:21 | 显示全部楼层
kebaojun305 发表于 2013-10-10 11:19
你确定是模拟开关

意思是用fpga搭建八路电子开关

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2013-10-10 14:24:40 | 显示全部楼层
上图是通过 3、4、10、11四个引脚分别控制D1,D2,D3,D4  四个电子开关,而我需要的是通过单片机发送数据给FPGA(如:001或100表示第一个或第四个电子开关导通),刚接触FPGA不久,望各位指导下代码怎么写

出0入0汤圆

发表于 2013-10-10 14:30:53 | 显示全部楼层
你这个东西在所有的verilog语言书中都有的,我用的VHDL,用when,case之类语句实现.

出0入0汤圆

 楼主| 发表于 2013-10-11 11:49:23 | 显示全部楼层
谁有verilog语言 带控制端的电子开关方面的实例,求共享

出0入0汤圆

发表于 2013-10-11 12:13:04 | 显示全部楼层
潘松等很多verilog的教材上就有四选一的例程,难道改成X选一会那么难吗?

出0入0汤圆

发表于 2013-10-11 12:58:37 来自手机 | 显示全部楼层
verilog用case语句就搞定了啊

出0入0汤圆

发表于 2013-10-11 13:15:30 | 显示全部楼层
FPGA根本没有模拟开关功能,怎么可能用verilog写出来?

出0入0汤圆

 楼主| 发表于 2013-10-11 17:20:34 | 显示全部楼层
marx 发表于 2013-10-11 13:15
FPGA根本没有模拟开关功能,怎么可能用verilog写出来?

楼上的意思是,不算很明白 ,能否详细点....

出0入0汤圆

 楼主| 发表于 2013-10-11 18:13:59 | 显示全部楼层
proteldxp 发表于 2013-10-11 12:58
verilog用case语句就搞定了啊

下面是我写的程序
// dzkg.v
module mux_case1(
                 int1,int2,int3,select,
                     
                 a1,b1,c1,d1,e1,f1,g1,h1,

                 a2,b2,c2,d2,e2,f2,g2,h2,

                 a3,b3,c3,d3,e3,f3,g3,h3,

                );

input   int1,int2,int3;

output  a1,b1,c1,d1,e1,f1,g1,h1;

output  a2,b2,c2,d2,e2,f2,g2,h2;

output  a3,b3,c3,d3,e3,f3,g3,h3;

input  [2:0] select;

reg    a1,b1,c1,d1,e1,f1,g1,h1;

reg    a2,b2,c2,d2,e2,f2,g2,h2;

reg    a3,b3,c3,d3,e3,f3,g3,h3;


always @(select or int1)
   begin
        case(select)
             3'b000 : a1<=int1;
             3'b001 : b1<=int1;
             3'b010 : c1<=int1;
             3'b011 : d1<=int1;
             3'b100 : e1<=int1;
             3'b101 : f1<=int1;
             3'b110 : g1<=int1;
             3'b111 : h1<=int1;
            
        endcase
   end

always @(select or int2)
   begin
        case(select)
             3'b000 : a2<=int2;
             3'b001 : b2<=int2;
             3'b010 : c2<=int2;
             3'b011 : d2<=int2;
             3'b100 : e2<=int2;
             3'b101 : f2<=int2;
             3'b110 : g2<=int2;
             3'b111 : h2<=int2;
        endcase
   end

always @(select or int3)
   begin
        case(select)
             3'b000 : a3<=int3;
             3'b001 : b3<=int3;
             3'b010 : c3<=int3;
             3'b011 : d3<=int3;
             3'b100 : e3<=int3;
             3'b101 : f3<=int3;
             3'b110 : g3<=int3;
             3'b111 : h3<=int3;
        endcase
   end

endmodule


编译的时候有警告 ,估计是产生锁存器
int1,int2接单片机串口 ,int3为使能信号

要达到的效果是  
    由单片机串口输出的收发信号直接输出,而不用FPGA 寄存器(a1,b1...  a2,b2... a3,b3...)存储单片机发过来的数据 ,而是将单片机发过来的数直接通过FPGA输出(意思是电子开关)如001表示电子开关1导通    int1, int2 就直接连接a1,b1 这样  
怎么解决 ,帮忙啊,各位大侠!!!

出0入0汤圆

发表于 2013-10-11 20:38:57 | 显示全部楼层
其实不用写代码,直接新建原理图,直接用quartus里面的74芯片。

出0入0汤圆

 楼主| 发表于 2013-10-12 08:48:49 | 显示全部楼层
proteldxp 发表于 2013-10-11 20:38
其实不用写代码,直接新建原理图,直接用quartus里面的74芯片。

诶 可惜我用的是ACTEL Libero 8.5  软件  直接画原理图但找不到芯片  原理图中只有 与门、或门 等  而我要的是带控制的电子开关

出0入0汤圆

发表于 2013-10-15 09:42:20 | 显示全部楼层
huangfeian0527 发表于 2013-10-11 17:20
楼上的意思是,不算很明白 ,能否详细点....

你知道什么是“模拟开关”不?

出0入0汤圆

 楼主| 发表于 2013-10-18 15:38:12 | 显示全部楼层
marx 发表于 2013-10-15 09:42
你知道什么是“模拟开关”不?

我可能没表达清楚,我指的是用FPGA模拟一个数字电子开关,而不是指用Cmos管等构成的模拟开关,还请帮个忙 ,怎么用verilog语言编写这样的代码?
头像被屏蔽

出0入0汤圆

发表于 2013-10-18 15:50:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2013-10-19 08:28:11 | 显示全部楼层
chiooo1 发表于 2013-10-18 15:50
楼主,别个的意思是 数字开关可以,模拟的是做不了的

明白 ,目前的关键是如何用verilog语言实现带控制的数字电子开关,求例程或者类似的例程?

出0入0汤圆

发表于 2013-10-19 09:53:10 来自手机 | 显示全部楼层
本帖最后由 xivisi 于 2013-10-19 09:58 编辑

基础东东,三八译码器,加多路选择,搜索一下吧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 05:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表